【问题标题】:How can I send tasks to a newly named backend如何将任务发送到新命名的后端
【发布时间】:2012-03-21 23:37:29
【问题描述】:

我有一个谷歌 appengine 应用,它在动态后端运行一些代码,定义如下:

backends:
- name: downloadfilesbackend
  class: B1
  instances: 1
  options: dynamic

我最近对我的代码进行了一些更改并添加了第二个后端。我已经将一些任务从前端移到了新的后端,它们运行良好。但是,我想将最初在 downloadfilesbackend 上运行的任务移动到新的后端(以节省实例时间)。我只是通过将目标的名称更改为新的后端来做到这一点,即

taskqueue.add(queue_name = "organise-files",
        url=queue_organise_files,
        target='organise-files-backend')

但是,尽管将新后端名称作为目标,但任务仍由旧后端运行。知道为什么会发生这种情况或如何解决吗?

编辑: 旧后端正在运行新任务 - 我已经检查过了。

我还检查了我的所有代码,以检查是否有任何东西在调用旧后端,但什么都没有。只有两种方法将任务添加到旧后端,并且这两种方法都已如上文所述进行了更改。

我将旧后端停止了几个小时,看看这是否会改变任何事情,但所发生的只是任务卡住了,直到我重新启动后端。新后端运行其他任务正常,所以肯定更新正确...

【问题讨论】:

  • 我无法重现这个。原始后端队列中是否仍有一些任务(从您的更改之前)仍在执行?您可能会检查的另一件事是您是否在更改后根据需要重新部署了后端。
  • 我已根据您的查询更新了帖子,提供了更多详细信息。

标签: python google-app-engine yaml backend


【解决方案1】:

花了一段时间,但我终于发现仅仅更改代码并使用 SDK 上传是不够的。如果在后端运行的代码或向后端处理程序发送任务的代码发生了变化,那么您必须运行

appcfg backends <dir> update [backend]

documentation for this command is here。我没有看到任何文档说明这一点 - 它与我遇到的另一个相关错误有关,这促使我将此作为一种途径。只是想我会让人们知道可能有类似问题的人

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多