列表参数太大,无法解析



我使用以下代码发送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)

我可能可以将registration_ids存储在redis中,然后从gcm_send_json访问它,并在迭代整个列表时删除它。(不确定这是最好的解决方案。)

或者我可以用发电机吗?

将大值存储在Redis中,并传递对它的引用通常是最好的方法。不能将生成器传递给芹菜任务。

相关内容

  • 没有找到相关文章