服务器日期时间值跳跃

服务器日期时间值跳跃

有人会对这个日期时间问题提供见解吗:

我的 Web 应用程序(在 centos/apache/wsgi/django 上)datetime.datetime.now()在每次调用时显示不同的当前时间()-我不是问为什么时间不断前进:)

我在调试日志中得到以下内容:(请注意,第一个和最后一个条目是由同一个过程创建的,但后者似乎是在第一个条目之前五个小时创建的,这毫无意义)

2009-10-28 22:00:37,724 DEBUG pid=16436 time=2009-10-28 22:00:37.724682 
2009-10-28 22:00:40,194 DEBUG pid=16407 time=2009-10-28 22:00:40.194602 
2009-10-28 22:00:42,742 DEBUG pid=16409 time=2009-10-28 22:00:42.742598 
2009-10-28 22:00:44,643 DEBUG pid=16408 time=2009-10-28 22:00:44.643639 
2009-10-28 22:00:46,747 DEBUG pid=16436 time=2009-10-28 22:00:46.747777 
2009-10-28 22:00:48,973 DEBUG pid=16411 time=2009-10-28 22:00:48.973176 
2009-10-28 22:00:51,261 DEBUG pid=16410 time=2009-10-28 22:00:51.261172 
2009-10-28 17:13:16,867 DEBUG pid=16436 time=2009-10-28 17:13:16.867307

谢谢!

答案1

您可能在同一进程中运行多个应用程序,这些应用程序对 TZ 的设置不同。当使用嵌入模式并将其与同一 Apache 安装中的 PHP 应用程序混合时,或者当运行多个 Django 实例并希望以不同方式设置 TZ 时,可能会发生这种情况。

阅读:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Timezone_and_Locale_Settings

解决方案是使用 mod_wsgi 守护进程模式并将具有不同 TZ 要求的不同 Django 实例委托给不同的守护进程组。

为了确认,请发布有关您托管应用程序的方式的更多详细信息。即嵌入式模式与守护进程模式。您是否正在运行多个 Web 应用程序,无论是 PHP 还是 Python。

注意,我假设您说的 WSGI 实际上是指 mod_wsgi。如果是这样,那么请不要再使用术语 WSGI 来指代 mod_wsgi。Apache/mod_wsgi 模块是单独的 WSGI API 规范的实现。它们不是一回事。

相关内容