标签: python sqlalchemy pyramid
我有一个基于金字塔+ sqlalchemy的Web服务器。当用户输入特定请求时,我需要启动Unix子进程。之后,我希望服务器定期监视此子流程,并根据部分结果更新表。当子过程完成时,服务器将执行一组动作。 实现这一目标的最佳方法是什么?
我正在考虑启动一个会定期发起请求的线程。作为提供此请求的一部分,服务器将监视打开的进程并更新表。有没有更好的方法呢?
答案 0 :(得分:3)
实现此类事情的最常见方法是使用消息队列和工作者。例如,您可以使用Celery或RQ。
开始工作的第一个请求将发送一条消息,以便工作人员完成工作。然后,工人可以做任何需要做的事情。如果您需要更新Web应用程序的UI,则可以轮询(每秒发出一次请求以查看最新状态)。如果您需要实时的内容,可以查看如何使用websockets或服务器发送的事件向用户发送消息。