greenlets

    0

    1답변

    Gevent/Greenlet이 실행될 다음 Greenlet을 선택하는 방식을 이해하려고합니다. 스레드는 OS 스케줄러를 사용합니다. 실행 런타임에서는 2 개의 계층 적 대기열을 사용합니다. 기본적으로 Gevent는 libevent를 사용합니다. 그러나 많은 사람들이 준비가되어 있다면, libevent가 다음 그린레울을 어떻게 달릴 것입니까? 무작위입니까?

    1

    1답변

    나는 빠른 구글을했고 어떤 결정적인 진술도 찾을 수 없었다. 기본적으로, 나는 SQS에서 사건을 읽고 그것들을 처리하려고 노력하고있다. 그리고 asio는 greenlets에 의해 처리 될 것으로 예상된다. 그래서 boto3의 세분성은 greenlet에서 사용할 수 있습니까? 미주리 당 세션/클라이언트가 필요합니까? 추가 뮤텍스가 필요합니까?

    12

    1답변

    나는 Flask + gevent를 사용하고 있으며, greenlet의 목표 기능 내부에서 flask.g 응용 프로그램 전역에 액세스하려고합니다. 나는 copy_current_request_context 장식을 사용하고 문서에 주어진 예제와 매우 유사한 상황이있어 : AttributeError: '_AppCtxGlobals' object has no attr

    1

    1답변

    Greenlet에서 상속하여 작업을 만들고 있습니다. 하나의 부모 작업이 _run()의 두 자녀에 대해 start()을 호출합니다. 다른 곳 (시스템 서비스 일 경우) start() 및 join()이 호출됩니다. 동작이 올바른 것처럼 보입니다. 예를 들어 Queue을 타임 아웃으로 사용하면 원하는 효과를 얻을 수 있지만 KeyboardInterrupt에서

    1

    1답변

    다중 풀을 사용하고 여러 풀에서 환경 변수를 생성하는 스크립트를 프로파일하려고합니다. Google 검색 결과로 나온 여러 라이브러리를 시도했지만 아무 것도 없습니다. 저는 모든 기본적인 결과를 제공하는 프로파일 러를 살펴 보았습니다. GreenProfiler, cProfile, gevent_profiler 등을 사용해 보았습니다. 새로운 Relic, Dyn

    1

    1답변

    교체 : def start(self, checkpoint=None): for gl in self._greenlets: gl.kill() self.load_config() self._greenlets = [ gevent.spawn_link_exception(self.periodic_checkpoint, 5) ]

    1

    1답변

    두 종류의 greenlets를 썼습니다. MyGreenletPUB 2. MyGreenletSUB 인스턴스 파라미터 ("1" 및 "2")에 기초 ZMQ PUB 구독 할 메시지 타입 1 메시지 유형 ZMQ 통해 메시지를 발행한다. 여기에서 문제는 MyGreenletSUB에있는 Greenlets 실행 방법을 시작하면 코드가 message = sock.recv()

    1

    1답변

    gevent와 다른 greenlets의 서버를 한 프로그램에서 실행하는 방법을 찾고 있습니다. 따라서 서버 (다중 연결)와 하나 또는 두 개의 다른 그린렛을 갖고 싶습니다. 이것이 가능한가? 그렇다면 어떻게? 감사합니다. 매트.

    1

    2답변

    Python 프로그램에서 eventlet을 사용하여 greenthreads를 많이 만들고, 현재 greenthread가 잠자기 상태인지 여부를 알고 싶습니다. 나머지 중 어느 것이 예약되고 실행됩니까? 이벤트 릿의 모든 스케줄러? 감사합니다. 하나를 실행하려고하는 두 greenthreads 준비 필요,

    0

    1답변

    gevent.pool (고정 크기)은 여러 작업 생성자간에 공유됩니다. 모든 작업 생성자는 여유 슬롯이있는 경우 풀에 새 녹색let을 적용 할 수 있습니다. 작업이 풀에 추가 된 후 작업 생성자는 추가 된 모든 작업이 완료 될 때까지 대기해야합니다. gevent.queue.JoinableQueue를 사용하여 모든 작업이 완료 될 때까지 기다렸습니다. 그것은