如何要求IIS站点等待服务?

时间:2012-04-17 16:40:37

标签: django iis iis-7.5 celery

我有一个通过IIS(7.5,Windows Server 2008 R2)托管的站点。该站点本身基于Django(Python),并使用Celery进行异步任务处理。 Celery在任务处理之前需要开始几件事(celeryd,celerycam,celerybeat),我已经创建了一个启动它们的服务。它设置为在“服务”控制面板中自动启动。

我发现在服务器重启(自动更新等)后,我的芹菜服务要么没有启动,要么时间有问题,我的网站无法使用它们依赖它。由于该站点在没有这些工作的情况下基本没用,我需要找到一种方法来确保它们在站点可用之前运行。

我想避免让所有IIS依赖此服务;只是一个有问题的网站(我有几个其他网站通过不同的端口托管,不需要服务)。

1 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是更改您的应用程序,并在无法连接到Celery服务时轻轻地失败。即向用户提供信息性错误消息,并为其提供重试选项。

使它依赖于服务的起始顺序是不好的设计。如果Celery服务因任何原因失败怎么办?顺便说一句,数据库连接/查询也是如此。您的代码应始终优雅地处理失败/错误。