huey
2.5.2
가벼운 대안 .
휴이는:
휴이는 다음을 지원합니다:
from huey import RedisHuey , crontab
huey = RedisHuey ( 'my-app' , host = 'redis.myapp.com' )
@ huey . task ()
def add_numbers ( a , b ):
return a + b
@ huey . task ( retries = 2 , retry_delay = 60 )
def flaky_task ( url ):
# This task might fail, in which case it will be retried up to 2 times
# with a delay of 60s between retries.
return this_might_fail ( url )
@ huey . periodic_task ( crontab ( minute = '0' , hour = '3' ))
def nightly_backup ():
sync_all_data ()
task
장식된 함수를 호출하면 소비자가 실행할 수 있도록 함수 호출이 대기열에 추가됩니다. 작업이 완료되면 결과를 가져오는 데 사용할 수 있는 특수 결과 핸들이 즉시 반환됩니다.
>>> from demo import add_numbers
>>> res = add_numbers( 1 , 2 )
>>> res
>>> res()
3
작업이 나중에 실행되도록 예약할 수 있습니다.
>>> res = add_numbers.schedule(( 2 , 3 ), delay = 10 ) # Will be run in ~10s.
>>> res( blocking = True ) # Will block until task finishes, in ~10s.
5
더 자세한 내용은 가이드를 확인하거나 예제 코드를 살펴보세요.
4개의 작업자 프로세스로 소비자를 실행합니다.
$ huey_consumer.py my_app.huey -k process -w 4
단일 작업자 스레드로 소비자를 실행하려면(기본값):
$ huey_consumer.py my_app.huey
작업 부하가 대부분 IO에 바인딩된 경우 대신 스레드나 Greenlet을 사용하여 소비자를 실행할 수 있습니다. Greenlet은 매우 가볍기 때문에 상당수를 효율적으로 실행할 수 있습니다.
$ huey_consumer.py my_app.huey -k greenlet -w 32
Huey의 디자인과 기능 세트는 Redis 데이터베이스의 기능을 바탕으로 만들어졌습니다. Redis는 Huey와 같은 경량 작업 대기열 라이브러리에 매우 적합합니다. 독립형이고 다재다능하며 캐싱, 이벤트 게시, 분석, 속도 제한 등과 같은 기타 웹 애플리케이션 작업을 위한 다목적 솔루션이 될 수 있습니다.
Huey는 Redis를 염두에 두고 설계되었지만 스토리지 시스템은 간단한 API를 구현하며 원하는 경우 Redis 대신 다른 많은 도구를 사용할 수 있습니다.
Huey에는 Redis, Sqlite 및 인메모리 스토리지에 대한 지원이 내장되어 있습니다.
휴이 문서를 참고하세요.
Github에서 소스 코드와 이슈 트래커를 확인하세요.
Huey는 내 고양이의 이름을 따서 명명되었습니다.