python后台运行怎么操作_如何在Python中在后台运行长时间运行的作业

Farsheed..

5

好吧,虽然你的方法不正确,但基本上它可能会导致程序耗尽可用的线程.正如阿里提到的,一般的方法是使用像RQ或的作业队列Celery.但是,您不需要提取函数来使用这些库.对于Flask,我建议你使用Flask-RQ.它很简单:

RQ

pip install flask-rq

只需记住在使用Flask应用程序之前安装Redis.

只需在Flask函数中使用@Job Decorator:

from flask.ext.rq import job

@job

def process(i):

# Long stuff to process

process.delay(3)

最后你需要rqworker启动工人:

rqworker

您可以查看RQ文档以获取更多信息.RQ专为简单的长期运行流程而设计.

芹菜

Celery更复杂,具有巨大的功能列表,如果您不熟悉作业队列和分布式处理方法,则不建议使用Celery.

Greenlets

Greenlets有交换机.让您在长时间运行的进程之间切换.您可以使用greenlet运行进程.好处是您不需要Redis和其他工作人员,而是必须重新设计您的兼容功能:

from greenlet import greenlet

def test1():

print 12

gr2.switch()

print 34

def test2():

print 56

gr1.switch()

print 78

gr1 = greenlet(test1)

gr2 = greenlet(test2)

gr1.switch()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值