executor.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:juicer 作者: eubr-bigsea 项目源码 文件源码
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-c", "--config", type=str, help="Configuration file")
    args = parser.parse_args()
    starttime = time.time()

    # Store opened shell sessions
    shells = {}

    # FIXME redis connection settings should be in config
    redis_conn = redis.StrictRedis()
    p = redis_conn.connection_pool

    publish = gevent.spawn(publisher, redis_conn)
    # FIXME: use config
    workers = 2
    log.info(_("Spawning %s greenlets connecting to Redis..."), workers)
    redis_greenlets = [gevent.spawn(execute_workflow, redis_conn, _id, shells)
                       for _id in xrange(workers)]
    # Wait until all greenlets have started and connected.
    gevent.sleep(1)

    log.info(_("# active `threading` threads: %s") % threading.active_count())
    log.info(_("# Redis connections created: %s") % p._created_connections)
    log.info(_("# Redis connections in use: %s") % len(p._in_use_connections))
    log.info(_("# Redis connections available: %s") % len(p._available_connections))
    log.info(_("Waiting for Redis connection greenlets to terminate..."))
    gevent.joinall(redis_greenlets)

    d = time.time() - starttime
    log.info(_("All Redis connection greenlets terminated. Duration: %.2f s.") % d)
    publish.kill()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号