【问题标题】:how to run background job in web.py?如何在 web.py 中运行后台作业?
【发布时间】:2017-05-23 11:50:05
【问题描述】:
  1. 我使用 web.py 通过“GET”和“POST”方法处理传入的数据,并使用app.run()。这看起来将循环运行并且永不停止。

  2. 我还有一个后台作业,它检测端口“9xxx”并处理传入的数据,将 msg 发送到其他服务器以将 msg 推送到手机。我还使用了一个 while(true) 循环来执行此操作。

如何将(2)整合到(1)中?我很困惑。

我曾经计划独立运行(1)和(2),但是有数据交换,所以不方便编码。你怎么web.py用户做这些类似的事情?

【问题讨论】:

  • 现在我意识到在 web.py 框架下可能没有办法运行后台作业。只需使用多处理来启动后台作业并使用队列来处理 web.py(或使用 uwsgi+nginx 等)之间的消息。我的任务很少,所以我只想使用 web.py)和后台作业。

标签: python web.py


【解决方案1】:

我想这就是你想要的:

nohup python web.py > web.log 2>&1 &

查看nohup wikiman page

在生产中,我想将web.py与uwsgi和nginx结合起来。您可以阅读this并尝试一下。然后我使用supervisord在它们终止后重新启动服务器。

【讨论】:

  • 谢谢!我的情况是程序(2)没有得到 GET 或 POST 而是其他用户定义的格式(当然,使用 tcp/ip 和套接字)。它与向服务器发送数据的远程设备通信。我已经使服务器可以侦听并获取数据,但使用 while(True) 循环来读取/写入数据。但是用 web.py 来操作它似乎不是一个好主意,这也是 application.run()....
  • 您的回答很有帮助!我也用 python 多处理解决了这个问题。使用多处理启动 2 个任务,监听其他端口做某事并使用 app.run 处理 web.py 中的 80 端口 POST/GET msgs。然后使用 nohup 运行它们。谢谢!
  • @NickQian 如果这有帮助,请接受这个答案。
猜你喜欢
  • 2012-11-26
  • 1970-01-01
  • 2011-06-17
  • 1970-01-01
  • 2013-02-24
  • 2021-10-05
  • 2015-03-29
  • 1970-01-01
  • 2011-09-10
相关资源
最近更新 更多