我的项目基于 GAE/J 并利用最近推出的 PULL 队列,但我认为这个问题也可以应用于 Python。
基本上,当我将任务放入 PULL 队列时,我需要设置任务的一些参数,以供后面的消费者拾取。
我已经以两种方式在参数设置中实现了:
1)通过使用param()
:
TaskOptions taskOptions = TaskOptions.Builder.
withMethod(TaskOptions.Method.PULL);
taskOptions.param("param", paramValue);
taskOptions.param("param2", paramValue2);
2)通过使用payload()
:
TaskOptions taskOptions = TaskOptions.Builder.
withMethod(TaskOptions.Method.PULL);
taskOptions.payload("payloadValue");
两种方法都有效,但是,我想知道两者之间的区别是什么,就效率或便利性而言,哪种方式应该是首选方式。
我可以看到,通过使用param()
,很容易设置多个参数,也很容易为消费者检索参数。但是对于一种参数情况,有效负载可能会更方便,因为它可以保存代码以捕获消费者提取参数时抛出的异常。
但是,除了我所说的之外,我很高兴知道这两者之间的更多区别。