コード例 #1
0
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()
コード例 #2
0
ファイル: producer.py プロジェクト: LZRhhh/stock_kafka
    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)