如何在Google App Engine上将参数传递给python cron任务?
我有一个用Python编写的应用程序。它从某些来源(RSS、Atom、Twitter等)收集和解析数据,如果发现新数据,则将其保存到MySQL数据库中 我在应用程序本身上定义了许多源代码,由于限制(例如Twitter及其每小时350个查询),并非所有源代码都可以在同一时间进行检查,因此我们的想法是通过将源代码作为参数传递来分别对其进行cron myscript.py--更新--源ABC(从ABC源获取、解析、检查和保存数据) myscript.py--更新--源XYZ(从XYZ源获取、解析、检查和保存数据) 到目前为止,我在本地的cron上工作得很好,但我想在Google App Engine上运行它,类似这样: cron.yaml:如何在Google App Engine上将参数传递给python cron任务?,python,google-app-engine,cron,arguments,Python,Google App Engine,Cron,Arguments,我有一个用Python编写的应用程序。它从某些来源(RSS、Atom、Twitter等)收集和解析数据,如果发现新数据,则将其保存到MySQL数据库中 我在应用程序本身上定义了许多源代码,由于限制(例如Twitter及其每小时350个查询),并非所有源代码都可以在同一时间进行检查,因此我们的想法是通过将源代码作为参数传递来分别对其进行cron myscript.py--更新--源ABC(从ABC源获取、解析、检查和保存数据) myscript.py--更新--源XYZ(从XYZ源获取、解析、检查
cron:
- description: update source ABC
url: /myscript.py --source ABC
schedule: every 5 minutes
login: admin
- description: update source XYZ
url: /myscript.py --source XYZ
schedule: every 12 minutes
login: admin
我还没有找到任何方法在appenginecron文档中实现这一点。任何解决方法?将源变量放在url路径中:
cron:
- description: update source ABC
url: /cron/ABC/
schedule: every 5 minutes
login: admin
- description: update source XYZ
url: /cron/XYZ/
schedule: every 12 minutes
login: admin
webapp.WSGIApplication([('/cron/([^/]+)/', CronHandler)])
class CronHandler(webapp.RequestHandler):
def post(self, source):
#do something with source variable...
由于cron.yaml只能通过上传新版本的应用程序进行更新,并且对实体的数量有上限,因此您最好通过编写应用程序来使用任务队列计划操作来解决此问题。我通过从request.get获取源代码解决了此问题,但这更好,谢谢!