django admin rq是一个django包,它从modeladmin的变更列表或变更表单创建一个4步(form、preview、main、complete)异步工作流。
django-admin-rq的Python项目详细描述
#Django管理RQ
django admin rq是一个django包,它从modeladmin的变更列表或变更表单创建一个4步(form、preview、main、complete)异步工作流。 通过在MaultAdmin子类中使用JoopAdmin MIXIN类,可以通过重写适当的继承方法来定义和运行作业。 它建立在[django rq][django rq]的基础上。
[django rq]:https://github.com/ui/django-rq
#安装
- 根据文档设置django rq
- pip install django-admin-rq
- 将django_admin_rq添加到INSTALLED_APPS
- 将django-admin-rq.url添加到您的url配置中
url(r'^django-admin-rq/', include('django_admin_rq.urls')),
- 将自定义执行选项处理程序添加到队列:`settings.py`
RQ_QUEUES = { 'default': { 'HOST': 'localhost', 'PORT': 6379, 'DB': 0, 'DEFAULT_TIMEOUT': 360, } } RQ = { 'EXCEPTION_HANDLERS': ['django_admin_rq.exceptions.exception_handler'] }
- 用@job decorator装饰异步任务。
- 他们提出了三个论点,所有这些论点都必须是有争议的: -django_admin_rq.models.jobstatus的一个实例 -步骤1中的表单数据 -如果需要,您可以提供一个额外的上下文对象
from rq import get_current_job from django_rq import job @job def async_task(job_status, form_data, extra_context): job = get_current_job() job_status.set_job_id(job.get_id()) job_status.start() ... do your job job_status.finish()