def quit(signal,SIGINT): """ CTRL+C退出程序,执行清理操作 """ from django_apscheduler.jobstores import DjangoJobStore print('stop fusion') djs = DjangoJobStore() djs.remove_all_jobs() sys.exit()
def __init__(self, model, admin_site): super().__init__(model, admin_site) self._django_jobstore = DjangoJobStore() self._memory_jobstore = DjangoMemoryJobStore() self._jobs_executed = [] self._job_execution_timeout = getattr( settings, "APSCHEDULER_RUN_NOW_TIMEOUT", 15 )
def handle(self, *args, **options): scheduler = BackgroundScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job(fetch_tweets, trigger=CronTrigger(hour='*/3'), id="fetch_tweets", max_instances=1, replace_existing=True) logger.info("Added job 'fetch_tweets'.") scheduler.add_job(delete_old_job_executions, trigger=CronTrigger(day_of_week="mon", hour="00", minute="00"), id="delete_old_job_executions", max_instances=1, replace_existing=True) logger.info("Added weekly job: 'delete_old_job_executions'.") try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def handle(self, *args, **options): scheduler.add_jobstore(DjangoJobStore(), 'default') scheduler.add_listener(listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR) scheduler.add_job( check_token, trigger=CronTrigger(second='*/20'), id='check_token', max_instances=1, replace_existing=True, next_run_time=datetime.now(), ) logger.info("Added job 'check_token'") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger(day_of_week="mon", hour="00", minute="00"), id='delete_old_job_executions', max_instances=1, replace_existing=True, ) logger.info("Added weekly job 'delete_old_job_executions'.") try: logger.info('Starting scheduler...') scheduler.start() except KeyboardInterrupt: logger.info('Stopping scheduler...') scheduler.shutdown() logger.info('Scheduler shut down successfully.')
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") # Каждую неделю будут удаляться старые задачи, которые либо не удалось выполнить, либо уже выполнять не надо. scheduler.add_job( delete_old_job_executions, trigger=CronTrigger(day_of_week="mon", hour="00", minute="00"), id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info("Added weekly job: 'delete_old_job_executions'.") scheduler.add_job( weekly_mailing_subscribers, # Каждую неделю в понедельник в 08.00 подписчикам рассылаются письма с недельными новостями trigger=CronTrigger(day_of_week="mon", hour="08", minute="00"), id="weekly_mailing_subscribers", max_instances=1, replace_existing=True, ) logger.info("Added weekly job: 'weekly_mailing_subscribers'.") try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") # добавляем работу нашему задачнику scheduler.add_job( weekly_newsletter_to_subscribers, trigger=CronTrigger(day_of_week='mon', hour="08", minute="30"), id="weekly_newsletter_to_subscribers", # уникальный айди max_instances=1, replace_existing=True, ) logger.info("Added job 'weekly_newsletter_to_subscribers'.") scheduler.add_job( delete_old_weekly_newsletter_to_subscribers(), trigger=CronTrigger( day_of_week="tue", hour="00", minute="00" ), # Каждую неделю будут удаляться старые задачи, которые либо не удалось выполнить, либо уже выполнять не надо. id="delete_old_weekly_newsletter_to_subscribers(", max_instances=1, replace_existing=True, ) logger.info( "Added weekly job: 'delete_old_weekly_newsletter_to_subscribers'." ) try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), 'default') scheduler.add_job( Database.update, trigger=CronTrigger(hour='*'), # Every hour id='Database Update', max_instances=1, replace_existing=True, ) logger.info('Added job \'Database Update\'.') scheduler.add_job( delete_old_job_executions, trigger=CronTrigger( day_of_week='mon', hour='00', minute='00' ), # Midnight on Monday, before start of the next work week. id='Delete Old Job Executions', max_instances=1, replace_existing=True, ) logger.info( 'Added weekly job: \'delete_old_job_executions\'.' ) try: logger.info('Starting scheduler...') scheduler.start() except KeyboardInterrupt: logger.info('Stopping scheduler...') scheduler.shutdown() logger.info('Scheduler shut down successfully!')
def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") #test scheduler.add_job(update_rankings, 'interval', hours=48) register_events(scheduler) scheduler.start()
def handle(self, *args, **options): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") # run this job every 24 hours scheduler.add_job(main(), trigger=CronTrigger(hour="24"), # every 24 hours id="my_job", jobstore='default', replace_existing=True, ) print("Added job 'my_job'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger( day_of_week="mon", hour="00", minute="00" ), # Midnight on Monday, before start of the next work week. id="delete_old_job_executions", max_instances=1, replace_existing=True, ) print( "Added weekly job: 'delete_old_job_executions'." ) try: print("Starting scheduler...") scheduler.start() except KeyboardInterrupt: print("Stopping scheduler...") scheduler.shutdown() print("Scheduler shut down successfully!")
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), 'default') scheduler.add_job( update_exporters, trigger=CronTrigger(hour='23', minute='50'), id='update_exporters', max_instances=1, replace_existing=True, ) logger.info("Added job 'update_exporters'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger(day_of_week="mon", hour="00", minute="00"), id='delete_old_job_executions', max_instances=1, replace_existing=True, ) logger.info("Added weekly job 'delete_old_job_executions'.") try: logger.info('Starting scheduler...') scheduler.start() except KeyboardInterrupt: logger.info('Stopping scheduler...') scheduler.shutdown() logger.info('Scheduler shut down successfully.')
def test_run_selected_jobs_creates_job_execution_entry( self, rf, monkeypatch): monkeypatch.setattr(settings, "APSCHEDULER_RUN_NOW_TIMEOUT", 1) # Shorten timeout to reduce test runtime scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore()) scheduler.start() job = scheduler.add_job(print, trigger="interval", seconds=60) admin = DjangoJobAdmin(DjangoJob, None) r = rf.get("/django_apscheduler/djangojob/") # Add support for Django messaging framework r._messages = mock.MagicMock(BaseStorage) r._messages.add = mock.MagicMock() assert not DjangoJobExecution.objects.filter(job_id=job.id).exists() admin.run_selected_jobs(r, DjangoJob.objects.filter(id=job.id)) assert DjangoJobExecution.objects.filter(job_id=job.id).exists() r._messages.add.assert_called_with(20, f"Executed job '{job.id}'!", "") scheduler.shutdown()
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job( requestBoxData, trigger=CronTrigger.from_crontab('1 0 * * *'), # trigger=CronTrigger(second="*/10"), # Every 10 seconds id="getBox", max_instances=1, replace_existing=True, ) scheduler.add_job( requestBtcData, trigger=CronTrigger.from_crontab('1 0 * * *'), id="getBtc", max_instances=1, replace_existing=True, ) # scheduler.add_job(requestBtcData, CronTrigger.from_crontab('8 8 * * *', timezone='UTC'), id="getBtcData", replace_existing=True,) # scheduler.add_job(requestBoxData, CronTrigger.from_crontab('10 16 * * *'), id="getBoxData", replace_existing=True,) try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def test_reconnect_on_db_error(transactional_db): counter = [0] def mocked_execute(self, *a, **k): counter[0] += 1 if counter[0] == 1: raise OperationalError() else: return [] with mock_compat.patch.object(CursorWrapper, "execute", mocked_execute): store = DjangoJobStore() # DjangoJob.objects._last_ping = 0 assert store.get_due_jobs(now=datetime.datetime.now()) == []
def handle(seld, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job( send_weekly_digest, trigger=CronTrigger( day_of_week="mon", hour="00", minute="00" ), id="send_weekly_digest", max_instances=1, replace_existing=True, ) logger.info("Added job 'send_weekly_digest'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger( day_of_week="mon", hour="00", minute="00" ), id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info( "Added weekly job: 'delete_old_job_executions'." ) try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down succesfully!")
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job( posts_senders, trigger=CronTrigger(ay_of_week="sun"), id="posts_senders", max_instances=1, replace_existing=True, ) logger.info("Added job 'posts_senders'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger( day_of_week="mon", hour="00", minute="00" ), # Midnight on Monday, before start of the next work week. id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info( "Added weekly job: 'delete_old_job_executions'." ) try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def test_run_selected_jobs_enforces_timeout(self, rf, monkeypatch): monkeypatch.setattr(settings, "APSCHEDULER_RUN_NOW_TIMEOUT", 1) # Shorten timeout to reduce test runtime scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore()) scheduler.start() job = scheduler.add_job(print, trigger="interval", seconds=60) admin = DjangoJobAdmin(DjangoJob, None) r = rf.get("/django_apscheduler/djangojob/") # Add support for Django messaging framework r._messages = mock.MagicMock(BaseStorage) r._messages.add = mock.MagicMock() with mock.patch( "django_apscheduler.admin.BackgroundScheduler.add_listener"): admin.run_selected_jobs(r, DjangoJob.objects.filter(id=job.id)) assert DjangoJobExecution.objects.count() == 0 r._messages.add.assert_called_with( 40, format_html( "Maximum runtime of {} seconds exceeded! Not all jobs could be completed successfully. " "Pending jobs: {}", admin._job_execution_timeout, ",".join({job.id}), ), "", ) scheduler.shutdown()
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") # добавляем работу нашему задачнику scheduler.add_job( my_job, trigger=CronTrigger(second="*/10"), # Тоже самое что и интервал, но задача тригера таким образом более понятна django id="my_job", # уникальный айди max_instances=1, replace_existing=True, ) logger.info("Added job 'my_job'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger(day_of_week="mon", hour="00", minute="00"), # Каждую неделю будут удаляться старые задачи, которые либо не удалось выполнить, либо уже выполнять не надо. id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info("Added weekly job: 'delete_old_job_executions'.") try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job( my_job, trigger=CronTrigger(second="00"), # Midnight everyday id="my_job", # The `id` assigned to each job MUST be unique max_instances=1, replace_existing=True, ) logger.info("Added job 'my_job'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger(hour="00", minute="00"), # Midnight every day id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info("Added weekly job: 'delete_old_job_executions'.") try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def save_sync(config): try: s_config = system_settings.objects.all()[0] sync_status.objects.all().delete() if int(config.get('config_sync_type')) == 0: s_config.config_sync_type = 0 s_config.config_sync_access_key = None s_config.config_sync_master_url = None s_config.config_sync_scope = None DjangoJobStore().remove_all_jobs() sync_status.objects.all().delete() scheduler.remove_all_jobs() elif int(config.get('config_sync_type')) == 1: s_config.config_sync_type = 1 s_config.config_sync_access_key = str(uuid.uuid4()) s_config.config_sync_master_url = None s_config.config_sync_scope = None DjangoJobStore().remove_all_jobs() sync_status.objects.all().delete() scheduler.add_job(sync, "interval", seconds=60, name="master") elif int(config.get('config_sync_type')) == 2: if config.get('config_sync_master_api'): sync_interval = int(config.get('config_sync_interval', 60)) s_config.config_sync_type = 2 s_config.config_sync_master_url = config.get( 'config_sync_master_api').strip('/') s_config.config_sync_access_key = config.get( 'config_sync_access_key') s_config.config_sync_interval = sync_interval s_config.config_sync_scope = bool( config.get('config_sync_scope', '')) DjangoJobStore().remove_all_jobs() sync_status.objects.all().delete() scheduler.add_job(sync, "interval", seconds=sync_interval, name="slave") else: return False else: return False s_config.save() return True except Exception, e: logger.error(str(e)) return False
def create_scheduler(): # manage = SchedulerManage() scheduler = BackgroundScheduler(daemonic=True) scheduler.add_jobstore(DjangoJobStore(), "default") date = dt.datetime.now() # 报警 scheduler.add_job(cal_kde_value, "date", run_date=date, id='alarm_proj', args=[], replace_existing=True) scheduler.add_job(his_model_update, "date", run_date=date, id='his_model_up', args=[], replace_existing=True) scheduler.add_job(seperate_operate_record.main, "date", run_date=date, id='operate_parsing', args=[], replace_existing=True) scheduler.add_job(clear_database, 'cron', hour='16', minute='04', id='clear_database', replace_existing=True) # scheduler.add_job(operate_resolve, "date", run_date=date, id='alarm_proj', args=[], replace_existing=True) # scheduler.add_job(seperate_operate_record.main, "interval", minutes=1, id='operate_proj', args=[]) # scheduler.add_job(time_task, "interval", seconds=5, id='mytask2', args=['mytask2',], replace_existing=True) scheduler.add_job(so_run, "interval", minutes=1, id='operate_match', args=[], replace_existing=True) # try: # group, int_list, scats_input = get_scats_int() # except Exception as e: # logger.error(e) # print(e) # else: # logger.info("get scats basic inf successfully!") # scheduler.add_job(thread_creat, "interval", minutes=5, id='scats_salklist', args=[group, int_list, scats_input], # replace_existing=True) # scheduler.add_job(RequestDynaDataFromInt, "interval", minutes=5, id='scats_volumns', args=[int_list], # replace_existing=True) # scheduler.add_job(get_operate, "interval", minutes=3, id='scats_operate', args=[], # replace_existing=True) scheduler.start() logger.info('start scheduler task') print("=======================定时任务启动==========================") print(scheduler.get_jobs()) print(scheduler.state) logger.info('start task register,check on admin platform!') register_events(scheduler)
def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") # run this job every 24 hours scheduler.add_job(check_obsolete_orders, 'interval', hours=24, name='clean_orders', jobstore='default', id="check_obsolete_orders", replace_existing=True) register_events(scheduler) scheduler.start() print("Scheduler started...", file=sys.stdout)
def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") # run this job every 24 hours scheduler.add_job(deactivate_expired_accounts, 'interval', seconds=10, name='clean_accounts', jobstore='default') register_events(scheduler) scheduler.start() print("Scheduler started...", file=sys.stdout)
def start(): print("scheduler initializing...") scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job(check_and_send_mail, 'interval', hours=1, name='checking_and_sending_mails', jobstore='default') register_events(scheduler) scheduler.start() print("Scheduler started...", file=sys.stdout)
def start(): backscheduler = BackgroundScheduler() backscheduler.add_jobstore(DjangoJobStore(), "default") backscheduler.add_job(scheduleScrape(), trigger="interval", name='scrape_all', seconds=300, jobstore="default") backscheduler.start()
def __init__(self): self.scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults) self.jobs = {} self.scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR) self.scheduler.add_jobstore(DjangoJobStore(), 'djangojobstore') self.scheduler.start() print(datetime.now())
def add_sqlcronjob(job_id, run_date, workflowId, url): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job(execute_job, 'date', run_date=run_date, args=[workflowId, url], id=job_id, replace_existing=True) register_events(scheduler) try: scheduler.start() except SchedulerAlreadyRunningError: logger.debug("Scheduler is already running!") logger.debug('add_sqlcronjob:' + job_id + " run_date:" + run_date.strftime('%Y-%m-%d %H:%M:%S'))
def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), 'djangojobstore') register_events(scheduler) @scheduler.scheduled_job('cron', minute='*/5', name='auto_mail') def auto_mail(): send_meilmail() scheduler.start()
def handle(self, *args, **options): scheduler = BlockingScheduler(timezone=settings.TIME_ZONE) scheduler.add_jobstore(DjangoJobStore(), "default") ''' scheduler.add_job( my_job, trigger =CronTrigger(second ="*/10"), # Every 10 seconds id="my_job", # The `id` assigned to each job MUST be unique max_instances=1, replace_existing=True, ) logger.info("Added job 'my_job'.") ''' scheduler.add_job( hourly_job, # Every 10 seconds trigger=CronTrigger(day="*", hour="*", minute="10"), id="hourly_job", # The `id` assigned to each job MUST be unique max_instances=1, replace_existing=True, ) logger.info("Added job 'hourly_job'.") scheduler.add_job( delete_old_job_executions, trigger=CronTrigger( day_of_week="mon", hour="10", minute="00" ), # Midnight on Monday, before start of the next work week. id="delete_old_job_executions", max_instances=1, replace_existing=True, ) logger.info( "Added weekly job: 'delete_old_job_executions'." ) scheduler.add_job( sort_tasks_in_lanes, trigger=CronTrigger( day_of_week="mon", hour="10", minute="00" ), # Midnight on Monday, before start of the next work week. id="sort_tasks_in_lanes", max_instances=1, replace_existing=True, ) logger.info( "Added sort job: 'sort_tasks_in_lanes'." ) try: logger.info("Starting scheduler...") scheduler.start() except KeyboardInterrupt: logger.info("Stopping scheduler...") scheduler.shutdown() logger.info("Scheduler shut down successfully!")
def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_job(report, 'interval', minutes=1, name='report_accounts', jobstore='default') register_events(scheduler) scheduler.start() print("Scheduler has started")
def wechat_sendfile_server(): data = {} itchat.auto_login() scheduler = BackgroundScheduler() # 调度器使用DjangoJobStore() scheduler.add_jobstore(DjangoJobStore(), "default") # trigger = DateTrigger(run_date='2019-05-13 15:25:30') job = scheduler.add_job(send_file_by_time, trigger='date', next_run_time='2019-05-13 14:06:30') # job = scheduler.add_job(send_file_by_time, trigger) scheduler.start() job.remove()