小编Jes*_*mez的帖子

由于实例数量过多,Apscheduler跳过作业执行

我尝试使用APScheduler通过IntervalTrigger运行定期作业,我故意将正在运行的实例的最大数量设置为一个,因为我不希望作业重叠。

问题是,经过一段时间后,调度程序开始报告该作业的最大运行实例数,即使它先前已通知该作业已成功完成,但我在日志中发现了这一点:

2015-10-28 22:17:42,137 INFO     Running job "ping (trigger: interval[0:01:00], next run at: 2015-10-28 22:18:42 VET)" (scheduled at 2015-10-28 22:17:42-04:30)
2015-10-28 22:17:44,157 INFO     Job "ping (trigger: interval[0:01:00], next run at: 2015-10-28 22:18:42 VET)" executed successfully

2015-10-28 22:18:42,335 WARNING  Execution of job "ping (trigger: interval[0:01:00], next run at: 2015-10-28 22:18:42 VET)" skipped: maximum number of running instances reached (1)

2015-10-28 22:19:42,171 WARNING  Execution of job "ping (trigger: interval[0:01:00], next run at: 2015-10-28 22:19:42 VET)" skipped: maximum number of running instances reached …
Run Code Online (Sandbox Code Playgroud)

python subprocess threadpool python-multithreading apscheduler

5
推荐指数
0
解决办法
2040
查看次数

sequelize 将额外的参数传递给日志记录功能

问题:有没有办法将任何额外信息传递给 sequelize 日志记录功能?

为什么我需要这个: 我的应用程序需要记录每个查询并获取经过的时间,问题是使用 sequelize 内置benchmark: true选项仅在查询返回后记录查询,我希望能够为每个查询记录两条消息,例如:

2016-12-23 16:25:57.152 QUERY #A0E92A247 Executing SELECT * FROM foo;
2016-12-23 16:25:57.177 QUERY #A0E92A247 ELAPSED 25ms
Run Code Online (Sandbox Code Playgroud)

我当前的代码结果是这样的:

2016-12-23 16:25:57.152 QUERY #A0E92A247 STARTED
2016-12-23 16:25:57.153 QUERY Executing (default): SELECT * FROM foo;
2016-12-23 16:25:57.177 QUERY #A0E92A247 ELAPSED 25ms
Run Code Online (Sandbox Code Playgroud)

问题在于,在具有多个查询同时运行的高度异步系统中,很难知道哪些查询被卡住了。

logging node.js sequelize.js

5
推荐指数
0
解决办法
738
查看次数

使用 Django 查询返回活动时区中的日期时间

我试图从表中检索最后 n 小时的行并在给定的时区打印它们的日期时间,给出打印日期时使用的时区,我试图使用 activate 使 django 返回具有正确时区的日期时间,但它以 UTC 形式返回日期。

这是我当前的代码:

min_time = datetime.datetime.now(link.monitor.timezone) - datetime.timedelta(hours=period)

timezone.activate(link.monitor.timezone)
rows = TraceHttp.objects.values_list('time', 'elapsed').filter(time__gt=min_time,link_id=link_id,elapsed__gt=0)

array = []
for row in rows:
    array.append((row[0].astimezone(link.monitor.timezone),row[1]))
Run Code Online (Sandbox Code Playgroud)

我想避免使用 astimezone 函数并让 Django 为我做这件事,有时我会错过 activate 函数吗?

编辑

这是我的模型,您可以看到要显示的时区保存在“监视器”模型中:

class Link(models.Model):
   ...
   monitor = models.ForeignKey(Monitor)
   ...

class Monitor(models.Model):
    ...
    timezone = TimeZoneField(default='Europe/London')

class TraceHttp(models.Model):
    link = models.ForeignKey(Link)
    time = models.DateTimeField()
    elapsed = models.FloatField()
Run Code Online (Sandbox Code Playgroud)

python django datetime django-queryset django-timezone

2
推荐指数
2
解决办法
4968
查看次数