博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apscheduler 绿色版
阅读量:5068 次
发布时间:2019-06-12

本文共 1240 字,大约阅读时间需要 4 分钟。

由于依赖EntryPoint,因此apscheduler在离线的方式(直接拷贝然后引用)使用时,会报错。

错误信息类似: No trigger by the name “interval/cron/date” was found

原因:

基类的构造函数依赖于EntryPoint, 如下:

class BaseScheduler(six.with_metaclass(ABCMeta)):    //...    _trigger_plugins = dict((ep.name, ep) for ep in iter_entry_points('apscheduler.triggers'))

 

也就是说,想啥都不用改直接用,必需pip/easy_install来安装。

 

破解如下, 修改BaseScheduler 的类变量 _trigger_plugins

from apscheduler.triggers.cron import CronTriggerfrom apscheduler.triggers.date import DateTriggerfrom apscheduler.triggers.interval import IntervalTriggerclass BaseScheduler(six.with_metaclass(ABCMeta)):    #_trigger_plugins = dict((ep.name, ep) for ep in iter_entry_points('apscheduler.triggers'))    _trigger_plugins ={
'cron':CronTrigger, 'date':DateTrigger, 'interval':IntervalTrigger}

 

同时修改_create_plugin_instance方法, 将

plugin_cls = class_container[alias] = plugin_container[alias].load()

改为

plugin_cls = class_container[alias] = plugin_container[alias]#.load()

如此,便将apscheduler变成了绿色免安装库。

 

为何这个lib要利用EntryPoint?有何好处?

  一般EntryPoints的集合行成统一的“注册表”,方便应用间的简单调用(无需关注太多细节)。

因此 。 (但缺点是必需通过pip/easy_install安装。)

  apscheduler使用plugin调用自身的注册信息,此处看不明白。

 

转载请注明本文来源:http://www.cnblogs.com/Tommy-Yu/p/5607841.html,谢谢!

转载于:https://www.cnblogs.com/Tommy-Yu/p/5607841.html

你可能感兴趣的文章
Introduction to my galaxy engine 2: Depth of field
查看>>
Python 3.X 练习集100题 05
查看>>
设计器 和后台代码的转换 快捷键
查看>>
Monkey测试结果分析
查看>>
STL——配接器、常用算法使用
查看>>
STL容器之vector
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
__all__有趣的属性
查看>>