当前位置: 首页 > 知识库问答 >
问题:

用于FLEXIBLE app engine中长时间运行任务的Taskqueue

殳飞扬
2023-03-14

我正在使用Flexible App Engine和Python3构建一个应用程序。在标准appEngine中,如果您需要运行超过60的任务,您可以使用task队列或我成功完成的延迟库(任务队列的抽象)。

Flexible App Engine不再支持包含这些函数的appengine api。相反,功能正在迁移到谷歌云库(https://googlecloudplatform.github.io/google-cloud-python/)相反(https://cloud.google.com/appengine/docs/flexible/python/migrating-an-existing-app).

您仍然可以通过使用python compat配置来访问这些appengine api功能,该配置仅限于python 2。

有没有一种方法可以在Flexible Appengine中运行长任务(排队),而不必使用python compat配置?

共有1个答案

商飞航
2023-03-14

我在运行Google flexible app engine的代码时遇到了几乎完全相同的问题—延迟DeadlineExceederRor,认为问题是因为这个DeadlineExceederRor

但是因为这个问题问的是task队列等,我想也许答案是不同的。实际上,这归结为这样一个事实,即在python3的灵活环境中,这个任务运行超过60秒并不是一个限制,因为所有代码都在docker容器中运行。因此,甚至可能不需要运行任务队列等。

可能值得检查gunicornentrypoint配置。在应用程序中。yaml文件添加-t选项和超时前允许的秒数。

runtime: python
env: flex
entrypoint: gunicorn -t 120 -b :$PORT main:app

这为我解决了这个问题,现在一个更长的代码在没有出口的情况下运行。

 类似资料:
  • 我正在使用rxjava将一些任务上载到服务器,每当任务启动的片段或活动被销毁时,我都会处理订阅以避免内存泄漏,但我想要的是,即使在片段/活动被销毁后,我也需要继续在后台运行任务,有什么方法可以实现这一点吗? 实例 是否必须始终释放订阅?如果不是,何时使用dispose?

  • 我在context.xml文件中定义了一个Spring调度任务,它每分钟运行一次。该任务调用postgres存储过程。存储过程运行时可以持续一分钟以上。如果当前运行没有完成,spring框架会调用相同的调度程序吗?谢谢,

  • 问题内容: 我的应用程序运行一些数据库查询,这可能需要很长时间。 在执行这些查询时,我的应用程序似乎死机了,看起来该应用程序已停止工作。 我需要使用progressbar来避免此问题,但是我不确定如何预测查询执行所花费的时间。 运行查询的代码如下 如何显示进度条以显示查询的进度? 问题答案: 您可以用来解决这类问题。 首先定义一个类的全局变量, 例如 然后在执行查询(如事件或其他任何内容)的过程中

  • 我正在尝试将一个向服务器发送消息的异步任务迁移到RxJava。该任务大致执行以下操作: 1) 创建将要发送的消息(保存到数据库) 2)向用户显示消息(状态为“发送”) 3)将消息发送到服务器(下面的代码段) 4)将消息标记为已发送或失败(保存到数据库) 5)更新UI 我创建了所需的Rx链,部分如下所示: 当我订阅上述内容时,我会得到一个一次性的。通常,我会将其添加到CompositeDisposa

  • 问题内容: 我有一个python celery-redis队列处理一次上传和下载值得一次演出和大量演出的数据。 很少有上传内容需要花费几个小时的时间。但是,一旦完成了这样的任务,我就目睹了这种奇怪的芹菜行为:芹菜调度程序通过将其再次发送给工作人员来重新运行刚刚完成的任务(我正在运行一个工作人员),并且它在同一时间发生了2次任务! 有人可以帮助我知道为什么会发生这种情况以及如何预防吗? 这些任务肯定

  • 我试着运行我的第一个颤振项目,但我不断地得到这个错误。 失败:构建失败,有一个异常。 > 哪里出错了:配置根项目'android'时出现问题。 无法解析配置“:classpath”的所有项目。无法下载gradle。jar(com.android.tools.build:gradle:3.5.0)无法获取资源的https://dl.google.com/dl/android/maven2/com/a