小编byo*_*ngb的帖子

将http中止/关闭从nginx传播到uwsgi/Django

我有一个Django应用程序Web应用程序,我想知道是否有可能让nginx传播中止/接近uwsgi/Django.

基本上我知道nginx的是意识到过早中止/接近,因为它默认为uwsgi_ignore_client_abort"关",你会得到499个nginx的错误,在你的nginx的日志时,请求中止/关闭发送响应之前.一旦uwsgi完成处理请求,它将返回响应nginx时抛出"IO错误".

转向uwsgi_ignore_client_abort"on"只是让nginx不知道中止/关闭,并删除了uwsgi"IO错误",因为uwsgi仍然可以回写给nginx.

我的用例是我有一个应用程序,人们可以非常快速地通过一些ajax结果页面,因此如果快速页面通过我中止了他们跳过的页面的待处理ajax请求,这将使客户端保持清洁和高效.但这对服务器端(uwsgi/Django)没有任何作用,因为即使没有任何东西等待响应,它们仍然必须处理每个请求.

现在显然可能存在某些页面,我不希望请求因任何原因而过早中止.但我使用芹菜来处理可能属于该类别的长期运行请求.

这可能吗?uwsgi'shariakari设置让我觉得它在某种程度上......只是无法弄清楚如何去做.

django nginx uwsgi

19
推荐指数
2
解决办法
3303
查看次数

date_format Django 1.4具有正确的时区

好的简单问题(我认为).

我有一个DateTime字段(auto_add_now)并输出到模板

{{ edited|date:"DATETIME_FORMAT" }}
Run Code Online (Sandbox Code Playgroud)

我得到了"2012年9月16日下午12:01"的预期结果

但不幸的是,由于我使用的是Backbone.js并且需要使用JSON传递日期时间,所以事情稍微复杂一些,因为它仅用于显示目的,所以我决定将它作为一个很好的语言环境格式化字符串传递.所以我挖掘代码并找到模板标签使用的内容,这就是我设置的内容.

from django.utils.formats import date_format
return {
    'created': date_format(self.created, 'DATETIME_FORMAT'),
}
Run Code Online (Sandbox Code Playgroud)

但最终结果是"2012年9月16日下午5:01"

我觉得它与模板标签上的以下内容有关

@register.filter(expects_localtime=True, is_safe=False)
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个,但结果却相同

from django.utils import timezone
tz = timezone.get_current_timezone()
logger.info(tz)
logger.info(self.edited)
logger.info(format(self.edited, 'DATETIME_FORMAT'))
logger.info(self.edited.replace(tzinfo=tz))
logger.info(format(self.edited.replace(tzinfo=tz), 'DATETIME_FORMAT'))
Run Code Online (Sandbox Code Playgroud)

哪个给了我这个

INFO: America/Chicago
INFO: 2012-09-16 17:01:52.921276+00:00
INFO: Sept. 16, 2012, 5:01 p.m.
INFO: 2012-09-16 17:01:52.921276-06:00
INFO: Sept. 16, 2012, 5:01 p.m.
Run Code Online (Sandbox Code Playgroud)

所以,是的,我一定是在遗漏一些东西,而且我一直在django文档上下,找不到任何可以指出我做错的事情.谢谢你的帮助.

django timezone django-1.4

4
推荐指数
1
解决办法
2686
查看次数

php函数全局定义的变量不适用于Yii

我正在尝试添加到Yii项目的一些遗留代码存在问题.

它与全局变量有关,我很清楚应该将它作为参数传递,但是由于这个旧代码并且在其他项目中使用,因此重写它并不是真正的选择.

$testVar = '123';
function testOutput() {
   global $testVar;
   var_dump($testVar);
}
testOutput();
Run Code Online (Sandbox Code Playgroud)

现在,如果我将这个文件包含在普通的php文件中,它可以工作并输出

string '123' (length=3)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将此文件包含在Yii控制器中,甚至包含在模板中,则输出此文件

null
Run Code Online (Sandbox Code Playgroud)

我试图搜索这个问题,但我得到了一些关于人们错误地使用全局变量的结果.我确信它实际上不是Yii问题,但很可能是Yii设置的php_ini设置,但是在搜索代码或Yii文档时我找不到任何可以解释这一点的内容.

可以通过使用我的第一个代码块创建文件然后将其包含在Yii模板或控制器中来测试此示例.我甚至用一个干净的Yii项目测试它.

我希望通过用Yii标记这个问题,我没有损害我解决这个问题的机会,因为我觉得这不仅仅是Yii的具体问题.

任何见解将不胜感激.

php yii

2
推荐指数
1
解决办法
1769
查看次数

标签 统计

django ×2

django-1.4 ×1

nginx ×1

php ×1

timezone ×1

uwsgi ×1

yii ×1