我有一个在 tornado 上运行的互联网站点,具有视频功能(转换、剪切、合并)。
视频特征很长,所以我想把它移到另一个 python 进程中,并保持龙卷风进程尽可能轻。
我将 mongo db 用于 commun db 功能,同步使用,因为 db 将保持轻便。
使用 Celery 推迟任务
视频.py:
@task
def convert(video):
...
龙卷风服务器.py
import video
...
def get(self):
paramvideo=...
convert.delay(paramvideo)
...
使用 mongo 推迟任务
视频.py:
def convert():
...
db = Connection().my_db
cursor = db.tasks.find(tailable=True)
while cursor.alive:
try:
next = cursor.next()
if next.t=='convert':
convert(next.d)
except StopIteration:
time.sleep(1)
龙卷风服务器.py
...
def get(self):
...
paramvideo=...
conn.tasks.insert({t:'convert',d:paramvideo})