【问题标题】:Taskqueue HTTP 1.1 404 error Google App Engine任务队列 HTTP 1.1 404 错误 Google App Engine
【发布时间】:2019-10-17 17:27:25
【问题描述】:

我们正在执行任务队列。根据文档here,我们创建了一个名为“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

【问题讨论】:

  • 为什么你的 queue.yaml 有target: v2.task-module 而你对taskqueue.Queue 的调用有target='worker'
  • 通过反复试验找到了这个。将其更改为 target: worker 并且它起作用了。感谢您的评论。
  • @Jacktileman 如果您可以将解决方案作为答案发布,以便让其他有相同问题的用户获得更多可见性,那就太好了!谢谢:)
  • @eespinola - 完成。
  • @Jacktileman 感谢您更新您的帖子,但最好的方法是作为新答案发布,以便其他用户可以看到该帖子已经接受了答案。你可以这样做并接受你自己的答案,或者我可以使用community wiki

标签: python google-app-engine google-tasks


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多