跳转到主要内容

利用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 (14.4 kB 查看哈希)

支持者