gpt4 book ai didi

python - GAE任务队列: Task not running/outputting

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:37 25 4
gpt4 key购买 nike

我已开始使用任务队列来安排一项时间密集型任务在后台运行。我想要运行的任务位于 URL“/test”中,而我用来安排任务的 URL 是“/bgtest”。这是“/bgtest”的处理程序:

class RunTestAsBackgroundProcess(BaseHandler):
def get_secure(self):
taskqueue.add(url='/test', method='GET')
logging.debug("Task added to queue")
return

“/test”任务将数据输出到日志中,当我正常访问/test时,它会执行、完成,我可以在日志中找到结果。但是,当我运行/bgtest 时,除了上述函数中的“任务已添加到队列”消息之外,我在日志中看不到任何内容。奇怪的是,在管理控制台的任务队列中,它说任务在最后一分钟运行,但没有给我任何有关它的详细信息。有什么想法吗?

编辑:只是为了解释一下代码,BaseHandler 是我用来检查用户是否登录 Facebook 的父类(super class),而 get_secure() 是在父类(super class)的 get() 方法之后调用的方法。

编辑:/test运行此类:

class CalculateTestAllocations(BaseHandler):
def get_secure(self):
dbuser = db.GqlQuery("SELECT * FROM User WHERE fbid = :1", self.user['uid'])[0]
if (dbuser.isadmin != True):
self.redirect('/')

#test data
drivers = []
passengers = []

drivers.append(allocation.Driver("01", allocation.Location(51.440958, -2.576318), 3, 1000)) # coming from Bristol
drivers.append(allocation.Driver("02", allocation.Location(55.935628, -3.285044), 3, 1000)) # coming from Edinburgh

passengers.append(allocation.Passenger("03", allocation.Location(51.483193, -3.208187), 1000)) # coming from Cardiff
passengers.append(allocation.Passenger("04", allocation.Location(52.469263, -1.860303), 1000)) # coming from Birmingham
passengers.append(allocation.Passenger("05", allocation.Location(53.783703, -1.541841), 1000)) # coming from Leeds
passengers.append(allocation.Passenger("06", allocation.Location(54.973994, -1.636391), 1000)) # coming from Newcastle

logging.debug("Running allocation engine now (GET)")

alloc = allocation.Allocation()
alloc.buildProblem(drivers, passengers, allocation.Location(52.951923, -1.169967)) # destination at Nottingham
alloc.solveAndOutput()

这会为我的分配算法填充一组测试数据(该算法接收一组司机和乘客并计算他们的最佳路线),然后告诉算法运行。发送到日志的内容包含在 allocate.solveAndOutput() 方法中,该方法执行以下操作:

def solveAndOutput(self):
routes = self.solveProblem()
logging.warn("Num routes: "+str(len(routes)))
logging.warn("Length of first route: "+str(len(routes[0])))
for route in routes:
print self.getStaticMapAddress(route)
logging.debug(self.getStaticMapAddress(route))

正如我所说,如果我只是运行/test 我会得到这些输出,但如果我运行/bgtest 什么也不会发生,但任务队列说它在过去一分钟运行了一些东西。

最佳答案

看起来您的 /test 脚本是从我只能假设是 session 的内容中获取的,然后基于该 session 进行重定向。这显然不适用于任务队列任务 - 没有用户,因此没有会​​话。

关于python - GAE任务队列: Task not running/outputting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com