【问题标题】:python: APScheduler in WSGI apppython: WSGI 应用程序中的 APScheduler
【发布时间】:2015-10-15 10:01:10
【问题描述】:

我想运行作为 WSGI 一部分的 APScheduler(通过 Apache 的 modwsgi 和 3 个工作人员)webapp。我是 WSGI 世界的新手,因此如果您能解决我的疑问,我将不胜感激:

  1. 如果 APScheduler 是 webapp 的一部分 - 它会在至少由一个工作人员运行的第一个请求(启动/重置 Apache 之后的第一个)之后变为活动状态?启动/重置 Apache 不会启动它 - 至少需要一个请求。

  2. 并发请求怎么样 - 每个工作人员会运行同一组 APScheduler 的任务,还是所有工作人员之间只共享一组?

  3. 一旦正在运行的进程(webapp 通过 worker 运行)会保持活动状态(因此 APScheduler 的任务将执行)还是会在一段空闲时间后终止(结果 - APScheduler 的任务不会执行)?

谢谢!

【问题讨论】:

  • 工作线程或工作进程?
  • 3 个线程,1 个进程

标签: python mod-wsgi wsgi apscheduler


【解决方案1】:

你是对的——调度程序在第一个请求到来之前不会启动。 因此在 WSGI worker 中运行调度器并不是一个好主意。更好的办法是在单独的进程中运行调度程序,并在必要时通过一些 RPC 机制(如 RPyC 或 Execnet)连接到调度程序。

【讨论】:

  • Alex:问题 #2:并发请求怎么样?谢谢。
  • Mod_wsgi 的工作线程不运行 APScheduler 的作业;它为此维护自己的线程池。
猜你喜欢
  • 1970-01-01
  • 2012-12-18
  • 2012-10-19
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多