利用uWSGI spooler和cron在Django中
项目描述
需求
从v0.3升级到v0.4
从v0.4开始,djcall使用PostgreSQL JSON字段代替Picklefield用于Caller.kwargs,这意味着除非您的djcall_caller.kwargs列中只有可序列化的JSON内容:迁移将失败,如果没有运行PostgreSQL,也会失败。抱歉,但无法查询Call kwargs已经成为一个很大的烦恼。无论如何,迁移应该会为您处理这个问题。它将旧的Picklefield重命名为old_kwargs,直到下一个版本才会删除。
安装
pip install djcall
将djcall添加到INSTALLED_APPS并迁移。
用法
from djcall.models import Caller
Caller(
# path to python callback
callback='djblockchain.tezos.transaction_watch',
# JSON serializable kwargs
kwargs=dict(
pk=transaction.pk,
),
).spool('blockchain') # optionnal spooler name
没有装饰器,什么都没有,
如果您有CRUDLFA+或django.contrib.admin,您应该在那里看到作业,并且能够取消它们。
示例项目
设置示例项目
djcall-example collectstatic djcall-example migrate djcall-example createsuperuser
使用runserver运行
djcall-example runserver
或者使用 uWSGI
uwsgi --env DJANGO_SETTINGS_MODULE=djcall_example.settings --env DEBUG=1 --spooler=/spooler/blockchain --spooler=/spooler/mail --spooler-processes 1 --http=:8000 --plugin=python --module=djcall_example.wsgi:application --honour-stdin --static-map /static=static
历史
首先创建了一个非常简单的纯 Python 通用 spooler for uwsgi: https://gist.github.com/jpic/d28333b0573c3c555fbe6e55862ecddb
第一个实现包括 CRUDLFA+ 支持: https://github.com/yourlabs/django-uwsgi-spooler
本版本添加了以下功能
Cron 模型和对 uWSGI cron 的支持,不能在不停机的情况下添加/删除它们,但可以在线更改 kwargs 和选项
CRUDLA+ 支持处于等待状态,等待目前 https://github.com/tbinetruy/CHIP 中的内容,因为我不希望在模板中构建 CRUD 支持,这会增加债务,现在是时候使用 CRUDLFA+ 中的组件来使 Cron/后台任务的 CRUD 变得非常棒
项目详情
djcall-0.4.6.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7e824103b870f34742ea53f3035918b755d2ab500e43ded4a517d4900899afb1 |
|
MD5 | b029f97d66a35dc5d53a2700904ed52c |
|
BLAKE2b-256 | bc60cce55e9248697a9bc855ff1240b07e606aa20b8da44236c66816cbe01e73 |