我用下面的代码发送gcm通知。在
registration_ids
是巨大的,因为它是接受者。在
有没有办法降低这个参数?在
@shared_task
def gcm_send_json(registration_ids, data, index=0, **kwargs):
NUM_REGISTRATION_ID = SETTINGS.get("GCM_MAX_RECIPIENTS")
range_limit = index + NUM_REGISTRATION_ID
sub_registration_ids = registration_ids[index: range_limit]
if not sub_registration_ids:
return
_gcm_send_json(sub_registration_ids, data, **kwargs)
if not kwargs:
kwargs = {}
kwargs.update({
'index': range_limit
})
eta = timezone.now() + datetime.timedelta(minutes=5)
gcm_send_json.apply_async(args=[registration_ids, data], kwargs=kwargs, eta=eta)
我可能可以将注册号存储在redis中,然后从gcm_send_json
访问它,并在迭代整个列表时删除它。
(不确定这是最佳解决方案….)
或者我可以用发电机吗?在
在Redis中存储大值,并传递对它的引用通常是最好的方法。 不能将生成器传递给芹菜任务。在
相关问题 更多 >
编程相关推荐