Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Django 如何在再次执行函数之前统计新数据_Django_Celery - Fatal编程技术网

Django 如何在再次执行函数之前统计新数据

Django 如何在再次执行函数之前统计新数据,django,celery,Django,Celery,我有这个功能,当满足某些条件时,自动执行send\u sms功能。如果检测到特定级别的计数,它将执行 我用芹菜在需要时自动执行它。但我现在的问题是这样的 如果responses.count()>=50:则它将执行发送短信功能。但是,当它在第一次执行后达到51时,它仍在执行,不能执行。我希望它再次重新计算另一个NEW50,以便再次执行 我怎么做?谢谢 def auto_sms(request): responses = Rainfall.objects.filter( le

我有这个功能,当满足某些条件时,自动执行
send\u sms
功能。如果检测到特定级别的计数,它将执行

我用芹菜在需要时自动执行它。但我现在的问题是这样的

如果
responses.count()>=50:
则它将执行
发送短信
功能。但是,当它在第一次执行后达到
51
时,它仍在执行,不能执行。我希望它再次重新计算另一个
NEW
50,以便再次执行

我怎么做?谢谢

def auto_sms(request):
    responses = Rainfall.objects.filter(
        level='Torrential' or 'Intense',
        timestamp__gt=now() - timedelta(days=3),
    )
    if responses.count() >= 50:
        send_sms(request)

    return HttpResponse(200)

那么,你可以简单地使用,像这样:

def auto_sms(request):
    responses = Rainfall.objects.filter(
        level='Torrential' or 'Intense',
        timestamp__gt=now() - timedelta(days=3),
    )

    count = responses.count()
    if not (count % 50) and count > 0:
        send_sms(request)

    return HttpResponse(200)
主要更改发生在
如果不是(计数%50)和计数>0:
,其中有2个逻辑操作

第一个
not(计数%50)
表示每个可被50整除的数字将返回
True
,即50、100、150等


但是有一个问题,
0
对于第一个操作也将返回
True
,这不是您想要的。这就是第二次操作的原因
count>0

非常感谢,它成功了!:)