0

我们正在执行任务队列。根据此处的文档 ,我们创建了一个名为“generate-reports”的新队列。我们的 queue.yaml 看起来像这样。

- name: generate-reports
  target: v2.task-module
  rate: 5/s
  max_concurrent_requests: 10
  bucket_size: 40

我们检查谷歌云控制台,可以验证“生成报告”队列是否处于活动状态。

然后我们使用这个在这个队列中放置一个任务。

class scheduledownloadreport(webapp2.RequestHandler):
    # Call the report to get the elements
    ScheduleReportDownload_cloudapi_obj = schedulereportdownload_cloudapi.ScheduleReportDownload_cloudapi()
    data_sent_obj = ScheduleReportDownload_cloudapi_obj.schedule_download(
                    download_obj)



class schedulereportdownload_cloudapi():     

    taskqueue.Queue(name='generate-reports')            
        task = taskqueue.add(
            url='/schedulebackendtasktocreatereport',
            target='worker',
            queue_name = 'generate-reports',
            params={
                "task_data"     : task_data
            })  

我们也试过这个。

taskqueue.Queue(name='generate-reports')            
        task = taskqueue.add(
            url='/worker/schedulebackendtasktocreatereport',
            target='worker',
            queue_name = 'generate-reports',
            params={
                "task_data"     : task_data
            })  

在这两种情况下,我们都会收到以下错误 -

"POST /schedulebackendtasktocreatereport HTTP/1.1" 404 113 https://MY-PROJECT-NAME/schedulereportdownload

如果我们只使用(没有 queue_name 参数)

    taskqueue.Queue(name='generate-reports')            
        task = taskqueue.add(
            url='/schedulebackendtasktocreatereport',
            target='worker',
            params={
                "task_data"     : task_data
            })  

这些任务就像一个魅力。他们排队进入默认队列。

已更新解决方案

- name: generate-reports
  target: worker
  rate: 5/s
  max_concurrent_requests: 10
  bucket_size: 40
4

1 回答 1

1

将 queue.yaml 中的目标名称更改为“worker”并且它起作用了。

- name: generate-reports
  target: worker
  rate: 5/s
  max_concurrent_requests: 10
  bucket_size: 40
于 2019-10-24T22:39:07.647 回答