Python rq job 没执行完毕就停止

2021-01-05 16:41:05 +08:00
 taomujian

用 rq 管理任务队列,每个工作任务里是开了线程执行其它任务,为啥程序没执行完就停止不执行了呢?并且出现 job ok 提示,明明没执行完,我在开的线程里循环输出 0-1000,有的 job 能全部输出,有的输出等到 600 就结束了,这是咋回事?烦请各位大佬指教.

1488 次点击
所在节点    Python
3 条回复
Latin
2021-01-05 16:51:38 +08:00
不贴代码 怎么看
taomujian
2021-01-05 16:55:51 +08:00
scan_data = {
'target': target,
}
scan = Scan(mysqldb)
q.enqueue(scan.async_exe, scan_data)

def async_exe(self, kwargs):
thread = threading.Thread(target = self.run, args=(kwargs,), daemon = True)
thread.start()

def run(self, kwargs):
for i in range(1000):
print(i)
taomujian
2021-01-05 16:57:15 +08:00
#!/usr/bin/env python3

from redis import Redis
from multiprocessing import Pool
from rq import Queue, Worker, Connection

redis_conn = Redis(host = '127.0.0.1', password = '', port = 6379)

def worker(listen):
with Connection(redis_conn):
worker = Worker(map(Queue, listen))
worker.work()

if __name__ == "__main__":
listen = ['high', 'default', 'low']
worker(listen)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741925

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX