python类Pool()的实例源码

web2py_on_gevent.py 文件源码 项目:true_review_web2py 作者: lucadealfaro 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application,
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
crawl.py 文件源码 项目:girlfriend 作者: chihongze 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def _concurrent_execute(self, context, start_req, parser, pool, pool_size):
        queue = Queue()  # ????

        # ????????????
        for r in start_req:
            queue.put_nowait(r)

        if pool is None:
            pool = GeventPool(pool_size)

        greenlets = []

        while True:
            try:
                req = self._check_req(queue.get(timeout=1))
                if req.parser is None:
                    req.parser = parser
                greenlets.append(pool.spawn(req, context, queue))
            except Empty:
                break

        return [greenlet.get() for greenlet in greenlets]
breakpad_resource.py 文件源码 项目:antenna 作者: mozilla-services 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, config):
        self.config = config.with_options(self)
        self.crashstorage = self.config('crashstorage_class')(config.with_namespace('crashstorage'))
        self.throttler = Throttler(config)

        # Gevent pool for crashmover workers
        self.crashmover_pool = Pool(size=self.config('concurrent_crashmovers'))

        # Queue for crashmover of crashes to save
        self.crashmover_save_queue = deque()

        # Register hb functions with heartbeat manager
        register_for_heartbeat(self.hb_report_health_stats)
        register_for_heartbeat(self.hb_run_crashmover)

        # Register life function with heartbeat manager
        register_for_life(self.has_work_to_do)
web2py_on_gevent.py 文件源码 项目:touch-pay-client 作者: HackPucBemobi 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application,
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
test_gevent.py 文件源码 项目:core-python 作者: yidao620c 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_pool(self):
        """?????"""
        class SocketPool(object):

            def __init__(self):
                self.pool = Pool(1000)
                self.pool.start()

            def listen(self, socket):
                while True:
                    socket.recv()

            def add_handler(self, socket):
                if self.pool.full():
                    raise Exception("At maximum pool size")
                else:
                    self.pool.spawn(self.listen, socket)

            def shutdown(self):
                self.pool.kill()
05???.py 文件源码 项目:Python_Study 作者: thsheep 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def main():
    # Deterministic Gevent Pool
    from gevent.pool import Pool
    p = Pool(10)
    run1 = [a for a in p.imap_unordered(echo, range(10))]
    run2 = [a for a in p.imap_unordered(echo, range(10))]
    run3 = [a for a in p.imap_unordered(echo, range(10))]
    run4 = [a for a in p.imap_unordered(echo, range(10))]
    print( run1 == run2 == run3 == run4 )

    # Non Deterministic Process Pool
    from multiprocessing.pool import Pool
    p = Pool(10)
    run1 = [a for a in p.imap_unordered(echo, range(10))]
    run2 = [a for a in p.imap_unordered(echo, range(10))]
    run3 = [a for a in p.imap_unordered(echo, range(10))]
    run4 = [a for a in p.imap_unordered(echo, range(10))]
    run1[0]
    print( run1 == run2 == run3 == run4 )
flooder.py 文件源码 项目:spymanager 作者: delete 项目源码 文件源码 阅读 45 收藏 0 点赞 0 评论 0
def _pull_from(self, subscription):
        user = self.site.get_user(subscription['username'])

        self.image_cache_handler.get_or_create(username=user.username)
        new_images = self.image_cache_handler.get_the_news(user.images)

        # This need run after send all images, because bulk is raising an
        # InvalidOperation Exception: Bulk operations can only be executed once
        self.image_cache_handler.add_the_images(new_images)

        chat_ids = [s['chat_id'] for s in subscription['subscribers']]

        p = pool.Pool(5)
        for _id in chat_ids:
            p.spawn(self._push_to, _id, new_images)
        p.join()
baseserver.py 文件源码 项目:oa_qian 作者: sunqb 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def set_spawn(self, spawn):
        if spawn == 'default':
            self.pool = None
            self._spawn = self._spawn
        elif hasattr(spawn, 'spawn'):
            self.pool = spawn
            self._spawn = spawn.spawn
        elif isinstance(spawn, integer_types):
            from gevent.pool import Pool
            self.pool = Pool(spawn)
            self._spawn = self.pool.spawn
        else:
            self.pool = None
            self._spawn = spawn
        if hasattr(self.pool, 'full'):
            self.full = self.pool.full
        if self.pool is not None:
            self.pool._semaphore.rawlink(self._start_accepting_if_started)
baseserver.py 文件源码 项目:RealtimePythonChat 作者: quangtqag 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def set_spawn(self, spawn):
        if spawn == 'default':
            self.pool = None
            self._spawn = self._spawn
        elif hasattr(spawn, 'spawn'):
            self.pool = spawn
            self._spawn = spawn.spawn
        elif isinstance(spawn, integer_types):
            from gevent.pool import Pool
            self.pool = Pool(spawn)
            self._spawn = self.pool.spawn
        else:
            self.pool = None
            self._spawn = spawn
        if hasattr(self.pool, 'full'):
            self.full = self.pool.full
        if self.pool is not None:
            self.pool._semaphore.rawlink(self._start_accepting_if_started)
normalizer.py 文件源码 项目:honeyd-python 作者: sookyp 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def __init__(self, database, ignore_rfc1918=True):
        self.normalizers = {}
        #injected instance of database.Database
        self.database = database
        self.enabled = True
        self.ignore_rfc1918 = ignore_rfc1918

        #max number of concurrent mongodb inserters
        self.worker_pool = Pool(5)

        #map normalizers
        for n in basenormalizer.BaseNormalizer.__subclasses__():
            normalizer = n()
            for channel in normalizer.channels:
                if channel in self.normalizers:
                    raise Exception('Only one normalizer for each channel allowed (%s).'.format(channel))
                else:
                    self.normalizers[channel] = normalizer
web2py_on_gevent.py 文件源码 项目:Problematica-public 作者: TechMaz 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application,
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
async.py 文件源码 项目:PyS60-Projects 作者: gauravssnl 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def map(requests, prefetch=True, size=None):
    """Concurrently converts a list of Requests to Responses.

    :param requests: a collection of Request objects.
    :param prefetch: If False, the content will not be downloaded immediately.
    :param size: Specifies the number of requests to make at a time. If None, no throttling occurs.
    """

    requests = list(requests)

    pool = Pool(size) if size else None
    jobs = [send(r, pool) for r in requests]
    gevent.joinall(jobs)

    if prefetch:
        [r.response.content for r in requests]

    return [r.response for r in requests]
web2py_on_gevent.py 文件源码 项目:rekall-agent-server 作者: rekall-innovations 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application,
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
engine.py 文件源码 项目:pyCreeper 作者: ZcyAndWt 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, spider):
        self.spider = spider
        self.logger = spider.logger
        self.scheduler = Scheduler(spider)
        self.settings = spider.settings
        max_request_size = self.settings["MAX_REQUEST_SIZE"]
        self.dynamic = self.settings["DYNAMIC_CRAWL"]
        if self.dynamic:
            module_path = DRIVER_MODULE
            module = import_module(module_path)
            init_kwargs = self.settings['DRIVER_INIT_KWARGS']
            self.driver = getattr(module,
                                  self.settings.get('DRIVER').title())(**init_kwargs)
        else:
            self.driver = None
        self.driver_sem = BoundedSemaphore(1)
        self.downloader = Downloader(spider, self.driver, self.driver_sem)
        self.pool = Pool(size=max_request_size)
importer.py 文件源码 项目:cdm 作者: riptano 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def load(self, table):
        cache = {}

        def save(row):
            (query, values) = self.get_insert(row, table)
            try:
                prepared = cache[query]
            except:
                prepared = self.session.prepare(query)
                cache[query] = prepared
            bound = prepared.bind(values)
            self.session.execute(bound)

        pool = Pool(100)
        i = 0
        print "Loading {}".format(table)
        with ProgressBar(max_value=len(self.dataframe)) as p:
            for _ in pool.imap_unordered(save, self.iter()):
                i += 1
                if i % 10 == 0:
                    p.update(i)
web2py_on_gevent.py 文件源码 项目:slugiot-client 作者: slugiot 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application,
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
baseserver.py 文件源码 项目:zenchmarks 作者: squeaky-pl 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def set_spawn(self, spawn):
        if spawn == 'default':
            self.pool = None
            self._spawn = self._spawn
        elif hasattr(spawn, 'spawn'):
            self.pool = spawn
            self._spawn = spawn.spawn
        elif isinstance(spawn, integer_types):
            from gevent.pool import Pool
            self.pool = Pool(spawn)
            self._spawn = self.pool.spawn
        else:
            self.pool = None
            self._spawn = spawn
        if hasattr(self.pool, 'full'):
            self.full = self.pool.full
        if self.pool is not None:
            self.pool._semaphore.rawlink(self._start_accepting_if_started)
subDomainsBrute.py 文件源码 项目:subDomainsBrute 作者: 0xa-saline 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def _load_dns_servers(self):
        print '[+] Validate DNS servers ...'
        self.dns_servers = []
        pool = Pool(30)
        for server in open('dict/dns_servers.txt').xreadlines():
            server = server.strip()
            if server:
                pool.apply_async(self._test_server, (server,))
        pool.join()

        self.dns_count = len(self.dns_servers)
        sys.stdout.write('\n')
        print '[+] Found %s available DNS Servers in total' % self.dns_count
        if self.dns_count == 0:
            print '[ERROR] No DNS Servers available.'
            sys.exit(-1)
test_recorder.py 文件源码 项目:pytest-vts 作者: bhodorog 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_catch_all_gevented_requests(vts_rec_on, movie_server):
    """Keep this test at the very end to avoid messing up with the rest of the
    tests, since it's monkey patching the network related operations.

    Maybe write a custom pytest order enforcer later."""
    def _job():
        return http_get(movie_server.url)

    from gevent.pool import Pool
    import gevent.monkey
    gevent.monkey.patch_socket(dns=True)

    pool = Pool()
    for x in range(10):
        pool.spawn(_job)
    pool.join()
    assert len(vts_rec_on.cassette) == 10
work_frame.py 文件源码 项目:kael 作者: 360skyeye 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self, name=None, service_group_conf=None, app=None, channel="center", lock=False, auri=None):
        # ??name????service_group_conf??service_group??
        if not name:
            if service_group_conf:
                name = get_service_group(service_group_conf).get('service_group')
            if not name:
                raise EnvironmentError('Neither name given nor service_group_conf name given')
        super(WORK_FRAME, self).__init__(name, app=app, channel=channel, auri=auri, lock=lock)
        self.command_q = "{0}-{1}".format(self.name, self.id)
        # frame????,????consumer??20s?????command_q
        self.create_queue(self.command_q, ttl=15, args={'x-expires': 20000})
        self.command_prefix = "skyeye-rpc-{0}.".format(self.name)
        self.join(self.command_q, "{0}*".format(self.command_prefix))
        self.init_command()
        self.command_pool = Pool(100)
        self.service_group_conf = service_group_conf
baseserver.py 文件源码 项目:Lixiang_zhaoxin 作者: hejaxian 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def set_spawn(self, spawn):
        if spawn == 'default':
            self.pool = None
            self._spawn = self._spawn
        elif hasattr(spawn, 'spawn'):
            self.pool = spawn
            self._spawn = spawn.spawn
        elif isinstance(spawn, integer_types):
            from gevent.pool import Pool
            self.pool = Pool(spawn)
            self._spawn = self.pool.spawn
        else:
            self.pool = None
            self._spawn = spawn
        if hasattr(self.pool, 'full'):
            self.full = self.pool.full
        if self.pool is not None:
            self.pool._semaphore.rawlink(self._start_accepting_if_started)
web2py_on_gevent.py 文件源码 项目:StuffShare 作者: StuffShare 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def run(options):
    import gluon.main
    if options.password != '<recycle>':
        gluon.main.save_password(options.password, int(options.port))
    if options.logging:
        application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
                                            logfilename='httpserver.log',
                                            profiler_dir=profiler)
    else:
        application = gluon.main.wsgibase
    address = (options.ip, int(options.port))
    workers = options.workers
    spawn = workers and Pool(int(options.workers)) or 'default'
    ssl_args = dict()
    if options.ssl_private_key:
        ssl_args['keyfile'] = options.ssl_private_key
    if options.ssl_certificate:
        ssl_args['certfile'] = options.ssl_certificate
    server = pywsgi.WSGIServer(
                    address, application, 
                    spawn=spawn, log=None,
                    **ssl_args
                    )
    server.serve_forever()
mailer_gevent.py 文件源码 项目:fake-mail-client 作者: srault95 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def send_multi_concurrency(self, messages):
        greenlets = []
        _pool = pool.Pool(self.concurrency)        

        for message in messages:
            if self.sleep_interval > 0:
                time.sleep(self.sleep_interval)
            greenlets.append(_pool.spawn(self.send, message))        

        _pool.join()

        results = []
        for g in greenlets:
            results.append(g.value)

        return results
hibp.py 文件源码 项目:haveibeenpwned 作者: kernelmachine 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self):
        self.pool_size = None
        self.pool = Pool(self.pool_size)
        self.session = requests.Session()
        self.timeout = 10
        self.url = None
        self.response = None
hibp.py 文件源码 项目:haveibeenpwned 作者: kernelmachine 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self):
        self.pool_size = None
        self.pool = Pool(self.pool_size)
        self.session = requests.Session()
        self.timeout = 10
        self.url = None
        self.response = None
hibp.py 文件源码 项目:haveibeenpwned 作者: kernelmachine 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self):
        self.pool_size = None
        self.pool = Pool(self.pool_size)
        self.session = requests.Session()
        self.timeout = 10
        self.url = None
        self.response = None
gevent_service.py 文件源码 项目:linkero 作者: ingran 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def run(app):
    linkero.printWellcome()
    linkero.createDB()
    if linkero.config["SSL"]["activate"]:
        gevent_server = WSGIServer((linkero.config["host"]["ip"],
                                    int(os.environ.get('PORT', linkero.config["host"]["port"]))),
                                    app, spawn=Pool(linkero.config["gevent"]["spawn"]),
                                    log='default' if (linkero.config["gevent"]["accessLog"] == True) else None,
                                    keyfile=linkero.config["SSL"]["key"], certfile=linkero.config["SSL"]["certificate"])
    else:
        gevent_server = WSGIServer((linkero.config["host"]["ip"],
                                    int(os.environ.get('PORT', linkero.config["host"]["port"]))),
                                    app, spawn=Pool(linkero.config["gevent"]["spawn"],
                                    log = 'default' if (linkero.config["gevent"]["accessLog"] == True) else None))
    gevent_server.serve_forever()
anyserver.py 文件源码 项目:touch-pay-client 作者: HackPucBemobi 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def gevent(app, address, **options):
        options = options['options']
        workers = options.workers
        from gevent import pywsgi
        from gevent.pool import Pool
        pywsgi.WSGIServer(address, app, spawn=workers and Pool(
            int(options.workers)) or 'default', log=None).serve_forever()
13_4???.py 文件源码 项目:Python_Study 作者: thsheep 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def __init__(self):
        self.pool = Pool(1000)
        self.pool.start()
gevent.py 文件源码 项目:squishy 作者: tmehlinger 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def __init__(self, func, pool_size=100, timeout=None):
        # XXX: Is it necessary to patch all? I know we need at least, socket,
        # ssl, dns, and signal. There may be calls inside boto/botocore that
        # require more patching.
        super(GeventWorker, self).__init__(func, pool_size=pool_size,
                                           timeout=timeout)
        self.logger = get_logger(__name__)
        self.pool = Pool(size=pool_size)


问题


面经


文章

微信
公众号

扫码关注公众号