Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No trigger by the name "interval" was found

I've been working with APScheduler and when attempting to run the code I get the error "No trigger by the name 'interval' was found"

It was perfectly on my local machine but will work on my cloud machine.

I have tried: reinstalling apscheduler via pip, easy_install, and manually; upgrading setuptools; upgrading all dependencies.

Edit: Code

if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(SMS, 'interval', minutes=1)
    scheduler.start()
    print Run Complete

    try:
        # This is here to simulate application activity (which keeps the main thread alive).
        while True:
            time.sleep(2)
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()  # Not strictly necessary if daemonic mode is enabled but should be done if possible


LookupError                               Traceback (most recent call last)
<ipython-input-40-2895cd586d3f> in <module>()
      1 if __name__ == '__main__':
      2     scheduler = BlockingScheduler()
----> 3     scheduler.add_job(SMS, 'interval', hours=1)
      4     scheduler.start()
      5     print "Run Complete"

/Users/admin/anaconda/lib/python2.7/site-packages/apscheduler/schedulers/base.pyc in add_job(self, func, trigger, args, kwargs, id, name, misfire_grace_time, coalesce, max_instances, next_run_time, jobstore, executor, replace_existing, **trigger_args)
    328 
    329         job_kwargs = {
--> 330             'trigger': self._create_trigger(trigger, trigger_args),
    331             'executor': executor,
    332             'func': func,

/Users/admin/anaconda/lib/python2.7/site-packages/apscheduler/schedulers/base.pyc in _create_trigger(self, trigger, trigger_args)
    780 
    781         # Instantiate the trigger class
--> 782         return self._create_plugin_instance('trigger', trigger, trigger_args)
    783 
    784     def _create_lock(self):

/Users/admin/anaconda/lib/python2.7/site-packages/apscheduler/schedulers/base.pyc in _create_plugin_instance(self, type_, alias, constructor_kwargs)
    764                     raise TypeError('The {0} entry point does not point to a {0} class'.format(type_))
    765             else:
--> 766                 raise LookupError('No {0} by the name "{1}" was found'.format(type_, alias))
    767 
    768         return plugin_cls(**constructor_kwargs)

LookupError: No trigger by the name "interval" was found
like image 552
ik629 Avatar asked Dec 25 '22 22:12

ik629


2 Answers

This issue is caused by an old version of setuptools. See https://bitbucket.org/agronholm/apscheduler/issues/77/lookuperror-no-trigger-by-the-name

You can solve this by running sudo pip install --upgrade setuptools and reinstallation of apscheduler with sudo pip install --ignore-installed apscheduler

like image 198
saroele Avatar answered Dec 27 '22 11:12

saroele


The other answers point to environmental causes, but it might also be how you're using APScheudler.

  • If using PyInstaller, see this workaround

Otherwise, verify that the APScheduler class (scheduler/trigger/jobstore/job) is instantiated correctly

  • If this is the case, the LookupError is likely thrown by the BaseScheduler as it tries to access the scheduler's triggers, jobstores, and executors. As of version 3.6.3, that's in the _create_plugin_instance() method of base.py

It'd also be good to verify that your file doesn't use the same name as the APScheduler library

like image 25
Ty Hitzeman Avatar answered Dec 27 '22 10:12

Ty Hitzeman