python-rq 简单使用

python-rq 是一个类似celery 的python 任务调度框架基于了redis

部署

需要包含worker 以及具体的任务执行,或者调度任务尺触发, 同时注意因为依赖redis 应该先启动redis

  • 启动worker
rq worker --with-scheduler
  • 任务开发
    注意任务需要使用独立的模块
import requests
 
def count_words_at_url(url):
    resp = requests.get(url)
    print(resp.text)
    return len(resp.text.split())
 
 
def generate_report():
    print("generate_report")
    return "this is a demo {0} ".format("dalong")
 
 
def task1(x, y):
    result = x + y
    return result
 
def task2(previous_result):
    result = previous_result * 2
    return result
  • 运行任务
    包含依赖的
from redis import Redis
from rq import Queue
from rq.job import Job
 
 
from task import count_words_at_url,generate_report
q = Queue(connection=Redis())
 
 
report_job = q.enqueue(generate_report)
result = q.enqueue(count_words_at_url,"https://pagedebug.com/10",depends_on=report_job)
 
print(result)

说明

python-rq 也是支持任务的调度的,相对来说rq 也是比较轻量的,对于项目使用还是听方便的,实际上可以和apscheduler 集成起来使用,米弥补彼此能力不足的一些问题(比如apscheduler 缺少依赖处理),python-rq 官方文档还是比较全的,很值得看看

参考资料

https://python-rq.org/docs/
https://github.com/rq/rq
https://github.com/rq/rq-scheduler
https://apscheduler.readthedocs.io/

posted on   荣锋亮  阅读(87)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-07-27 cube.js elasticsearch 官方sql 扩展使用
2020-07-27 基于openresty进行 query string 重写
2019-07-27 telegraf 学习一 基本安装
2018-07-27 swagger api 转graphql npm 包试用
2017-07-27 piwik docker 安装
2015-07-27 jQuery的图像裁剪插件Jcrop
2015-07-27 jquery-qrcode生成二维码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示