我plone.app.async
用来将任务卸载给特定的工作人员,而前端工作人员则尽可能快地为页面提供服务。
plone.app.async
使用创建任务的同一用户运行异步任务,因此我正在执行以下操作以覆盖它:
from AccessControl.SecurityManagement import newSecurityManager
from plone.app.async import Job
from plone.app.async import queue
from zope.component.hooks import getSite
site = getSite()
root = site.getPhysicalRoot()
admin_user = root.acl_users.getUserById('admin')
newSecurityManager(None, admin_user)
job = Job(
some_random_task,
parameter1,
parameter2,
)
queue(job)
但是感觉很鸡肋...
问题是外部脚本(不幸的是无法控制)正在向我们的网站发送数据以在其上创建对象,因此需要相当多的权限才能创建、移动、更改工作流状态等。
有没有更好的方法来覆盖plone.app.async
使用的用户?