def engage(): banner.print_banner() oneness_scheduler = BlockingScheduler({ 'apscheduler.executors.processpool': { 'class': 'apscheduler.executors.pool:ProcessPoolExecutor', 'max_workers': '20' }, 'job_defaults': { 'coalesce': False, 'executor': 'processpool' } }) oneness_scheduler.add_executor('processpool') t_retweet = oneness_scheduler.add_job(twitter.retweet.start, 'interval', minutes=60, id='twitter_retweet_bot') t_follow = oneness_scheduler.add_job(twitter.follow.start, 'interval', minutes=10, id='twitter_follow_bot') # quoted_im_generator = oneness_scheduler.add_job( # image_generator.quoted_image.start, # 'interval', minutes=300, # id='quoted_im_generator', # kwargs={'overlay_flag': True} # ) im_with_quote_generator = oneness_scheduler.add_job( image_generator.quoted_image.start, 'interval', minutes=120, id='image_with_quote_generator', kwargs={'overlay_flag': False}) try: # oneness_scheduler.start() for job in oneness_scheduler.get_jobs(): job.modify(next_run_time=datetime.now()) oneness_scheduler.start() except (KeyboardInterrupt, SystemExit): oneness_scheduler.shutdown()
print(msg) def test2(symbols): quotes = get_quotes(symbols) for line in quotes: producer.send(topic, line.encode()) print("send " + line) if __name__ == '__main__': init_db() table = quote_table key_space = key_space session = get_session() schedule = BlockingScheduler() schedule.add_executor('threadpool') producer = KafkaProducer(bootstrap_servers=['localhost:9092']) # Assign a topic topic = 'test' symbols = ['GOOG', 'AAPL', 'FB', 'AMZN', 'MSFT'] for symbol in symbols: schedule.add_job(fetch_stock, 'interval', args=[symbol], seconds=30, id=symbol) # every second run fetch_price schedule.start() # test2(symbols)