Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用APScheduler时,IIS后面的金字塔(女服务员)会随机停止工作_Python_Iis_Cron_Pyramid_Waitress - Fatal编程技术网

Python 使用APScheduler时,IIS后面的金字塔(女服务员)会随机停止工作

Python 使用APScheduler时,IIS后面的金字塔(女服务员)会随机停止工作,python,iis,cron,pyramid,waitress,Python,Iis,Cron,Pyramid,Waitress,我正在Windows上运行一个金字塔应用程序,将其用作应用程序服务器,将IIS用作Web服务器(代理)。当我运行应用程序时,它会(似乎)随机工作一段时间,然后才会停止。它可以持续几天,甚至几周,然后停止,让IIS抛出502错误。当它停止时,除非重新启动Windows,否则无法重新启动它 这是一个小型应用程序,它使用ApsScheduler点击几个API在eBay/Amazon之间同步库存。我不完全确定是什么导致了这个问题,因为日志中没有显示错误。我有一个较旧版本的应用程序正在运行(没有APSch

我正在Windows上运行一个金字塔应用程序,将其用作应用程序服务器,将IIS用作Web服务器(代理)。当我运行应用程序时,它会(似乎)随机工作一段时间,然后才会停止。它可以持续几天,甚至几周,然后停止,让IIS抛出502错误。当它停止时,除非重新启动Windows,否则无法重新启动它

这是一个小型应用程序,它使用ApsScheduler点击几个API在eBay/Amazon之间同步库存。我不完全确定是什么导致了这个问题,因为日志中没有显示错误。我有一个较旧版本的应用程序正在运行(没有APScheduler),我没有这个问题,所以我假设它与APScheduler有关


还有其他人经历过这种情况吗?

首先让我说,我自己还没有使用APScheduler,几乎不知道如何在Windows和IIS上运行Python服务器(或任何其他真正的)。
所以我只能在这里猜测,但很明显,您的问题在某种程度上与APScheduler有关。我可以想象,APScheduler用于后台任务的线程出现了问题,挂起的线程导致整个应用程序崩溃,这是由于GIL(Python中的全局解释器锁)。例如,当线程遇到某种竞争条件时,可能会发生这种情况。 可能在上一次迭代完成处理之前就开始处理了。或者,您会有一个非常大的积压工作,这会导致处理开始时出现问题

无论如何,我认为任务队列更适合于web应用程序中的后台处理,因为它们单独运行,并且与web服务器的上下文无关。 您可以在某个用户操作触发任务后立即安排该任务,并在工作人员可用时立即对其进行处理,而不会延迟到某个时间点。
我建议您试一试,但也有其他可用的解决方案,很多都是基于Redis的

芹菜真的很强大,它有一些高级功能,比如定期任务和crontab样式的日程安排,所以你可以用它来完成你现在使用APScheduler所做的事情

这看起来对在Windows下设置芹菜很有帮助:
这也可能有助于:
注意:我自己没有尝试过这些,因为如果我有选择的话,我会使用Linux

让APScheduler正常工作也是可能的,但我认为使用芹菜会容易得多,因为如果worker中出现问题,您可以比后台线程中出现问题更容易地调试它。芹菜还可以配置为在出现错误时自动向您发送电子邮件