我有一个由皇帝和两个不同的附庸国管理的Web应用程序。因为它们都写入不同的数据源,所以我需要一个文件来同步两者,因此我决定向emperor.ini添加一个计时器作业:

[uwsgi]
strict = True
die-on-term = True
memory-report = True
uid = www-data
gid = www-data
emperor = xxx.ini
logdate = True
import = synchronize


这是synchronize.py

from uwsgidecorators import rbtimer, lock
INTERVAL = 10

@lock
@rbtimer(INTERVAL)
def synchronize():
    """ Synchronizes data between Redis and PostgreSQL. """
    print 'AAA'


我这样运行我的皇帝:uwsgi --ini emperor.ini但什么也没发生,控制台从不打印'AAA'。

我还想念什么?

最佳答案

您需要一个进程(工人或worker子)来运行信号处理程序。生成一个worker(添加一个socket指令)或一个mule(添加mule = true)。如果是ule子,则需要将target = mule添加到@rbtimer装饰器中)

关于python - 从皇帝运行rbtimer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23198484/

10-09 13:45