django的简单后台任务

django-workers的Python项目详细描述


Django工人

一个简单的后台任务工作器,使用django数据库和管理员进行管理。这个 该项目是为中小型用途。如果你需要更多的东西,看看芹菜。

安装

下载软件包

pip install django-workers

并将其添加到Django安装的应用程序中

INSTALLED_APPS=[# ...'workers',# ...]

基本知识

在django应用程序中创建一个tasks.py文件,您希望在其中包含任务。这些任务将自动 由于自动发现而变得可用。

fromworkersimporttask@task()defsay_hello(name):print('Howdy',name)

呼叫任务

任务变为简单的python可调用。调用它们会将该任务插入django数据库并 等工人来拿。

say_hello('Foo')# Sent to background automatically

管理工人

现在启动你的工人来处理一些数据。工作人员在数据库中轮询应执行的新任务 从事。

python manage.py runworkers

计划任务

有时您希望每x秒或以后运行一个特定任务。这是预定的 任务是为了。

重复计划任务

以秒为单位的计划指定的任务将重复。

fromworkersimporttask@task(schedule=10)defdo_something():print('I run every 10 seconds')@task(schedule=60*5)defdo_something_later():print('I run every 5 minutes')@task(schedule=60*60*8)defdo_something_even_later():print('I run every 8 hours')

计划任务的日期

通过传递一个_schedule=<datetime>参数,可以将任务安排在以后运行一次 当任务被调用时。

fromdatetimeimportdatetime,timedeltafromworkersimporttasktrial_end_date=datetime.utcnow()+timedelta(days=14)@task()deftrial_ending():send_email('Your trial is ending!')# Specifying the `schedule` argument will tell the worker when this task should runtrial_ending(_schedule=trial_end_date)

设置

您可以选择在djangosettings.py文件中覆盖这些设置:

  • WORKERS_SLEEP(默认值5)-在检查任务之前等待几秒钟,如果未找到任务
  • WORKERS_PURGE(默认值1000)-要在管理员中保存多少最近的任务日志

TOdo(不工作)

  • WORKERS_TIMEOUT(默认值30)-任务在终止前可以运行的秒数
  • WORKERS_RETRY(默认3)-放弃前的重试次数
  • WORKERS_CONCURRENCY(默认值1)-要运行的工作进程数

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaJSonarray不会从SeekBar读取double   使用另一个类从Java中的2D数组打印用户输入   java ClassNotFoundException的原因   spring调用两个方法以返回Java中的不同页面   httpurlconnection Java禁止的代码错误,但浏览器错误(2)   java画布矩阵转换   java:在另一个java映射中使用“Map”作为值   java“未找到用于解密的证书”(Apache CXF,WSSecurity)   java如何查看JTable中选择的行   java在没有xmlwrappers的情况下重复xml元素序列集   java将垂直直方图打印到控制台   java Spring JDBCTemplate:构造不带特殊字符的JSON   java PayPal RestApi获取用户信息