堆栈驱动程序日志具有相同的应用程序引擎后台线程时间戳

时间:2018-03-18 01:53:58

标签: python google-app-engine stackdriver google-cloud-stackdriver

我在app引擎标准应用程序中使用google.appengine.api中的background_thread来创建一个线程,该线程每隔30秒轮询一个拉任务队列以执行新任务。 应用程序引擎将每次运行的日志分组到堆栈驱动程序上的/ _ah / background条目中,并将该应用程序记录的所有内容分组到该条目中。

问题是所有记录的/ _ah /后台都具有相同的时间戳,该时间戳是创建的第一个条目,但是在其下分组的应用程序日志显示正确的时间戳。这也导致堆栈驱动程序在一天运行后没有记录日志,因为它达到了限制(可能所有条目都以相同的时间戳记录)。

关于为什么/ _ah / background条目具有相同时间戳的任何想法?

1 个答案:

答案 0 :(得分:0)

每当启动后台线程时,都会对/ _ah / background发出特殊请求。也就是说,后台线程就好像它将向/ _ah / background提供请求一样。来自后台线程的所有日志都会记录到该特定请求中。在后台线程运行时,将记录“active start = 2013-08-21,11:15:17.586”等标签,而不是HTTP响应代码和已用时间。如果它终止,则日志显示响应代码和实际经过的时间。

但是,在同一个线程中运行的每个操作都将具有与主操作相同的时间戳。因此,对于在相同后台主操作下运行的所有后台操作,将看到相同的时间戳。 在Stackdriver中深入查看每个操作的日志将提供有关确切时间戳和有关任务的其他详细信息的更多详细信息。

考虑到这一点,请注意entries.write API调用limit每个项目每秒写入1000次。因此,这可能不是导致日志记录停止的原因。