Metadata-Version: 2.1
Name: darq
Version: 0.0.3
Summary: A small wrapper around arq
Home-page: https://github.com/seedofjoy/darq
Author: Igor Mozharovsky
Author-email: igor.mozharovsky@gmail.com
License: MIT
Description: # darq
        
        ![Lint & test](https://github.com/seedofjoy/darq/workflows/Lint%20&%20test/badge.svg?branch=master)
        
        A small wrapper around arq
        
        ## Features
        * Celery-like `@task` decorator, adds `.delay()` to enqueue job
        * Graceful shutdown: waits until running tasks are finished
        
        ## Quick start
        
        ```python
        # some_project/darq_app.py
        import asyncio
        import darq
        
        darq = darq.Darq({'redis_settings': darq.RedisSettings(host='redis')})
        
        
        @darq.task
        async def add_to_42(ctx, a: int) -> int:
            return 42 + a
        
        
        async def main():
            # Before adding tasks to queue we should connect darq instance to redis
            await darq.connect()
        
            # Celery-like add task to queue:
            await add_to_42.delay(a=5)
        
            await darq.disconnect()
        
        
        if __name__ == '__main__':
            asyncio.run(main())
        ```
        
        And start worker:
        ```sh
        python3 -m darq.cli some_project.darq_app.darq
        ```
        
        Worker output:
        ```
        15:24:42: Starting worker for 1 functions: some_project.darq_app.add_to_42
        15:24:42: redis_version=5.0.7 mem_usage=834.87K clients_connected=1 db_keys=2
        15:25:08:   0.22s → 1315f27608e9408392bf5d3310bca38c:darq_app.add_to_42(a=5)
        15:25:08:   0.00s ← 1315f27608e9408392bf5d3310bca38c:darq_app.add_to_42 ● 47
        ```
        
        ## Changelog
        
        ### 0.0.3 (2020-02-25)
        * `.delay()` now returns `arq_redis.enqueue_job` result (`Optional[Job]`)
        * Add `py.typed` file
        * Fixed `add_cron_jobs` typing
        
        ### 0.0.2 (2020-02-24)
        * Add `add_cron_jobs` method
        
        ### 0.0.1 (2020-02-21)
        First release
Platform: UNKNOWN
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Typing :: Typed
Requires-Python: >=3.6
Description-Content-Type: text/markdown
