├── .DS_Store ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── crystal.yml ├── .gitignore ├── .tool-versions ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── config ├── joobq.base.yml ├── joobq.development.yml ├── joobq.production.yml └── joobq.test.yml ├── docker-compose.yml ├── joobq-logo.png ├── joobq.svg ├── playground ├── bench.cr ├── config.cr ├── crystal_client_example.cr ├── custom_alert_notification_example.cr ├── error_monitor_test.cr ├── error_monitoring_example.cr ├── jobs │ ├── expire_jobs.cr │ ├── fail_job.cr │ └── test_job.cr ├── load.cr ├── pipeline_benchmark.cr ├── pipeline_test.cr ├── pipeline_usage_example.cr ├── simple_error_monitor_test.cr └── standalone_error_monitor_test.cr ├── scripts └── validate-openapi.cr ├── shard.lock ├── shard.yml ├── spec ├── api_endpoints_spec.cr ├── api_validation_spec.cr ├── error_monitor_spec.cr ├── helpers │ └── all_test_jobs.cr ├── job_spec.cr ├── jobs_spec.cr ├── joobq_spec.cr ├── middleware_spec.cr ├── queue_factory_spec.cr ├── queue_spec.cr ├── race_condition_test_spec.cr ├── retry_refactor_spec.cr ├── scheduler_spec.cr ├── spec_helper.cr ├── unique_queue_membership_spec.cr ├── worker_manager_spec.cr ├── worker_spec.cr └── yaml_config_spec.cr └── src ├── joobq.cr └── joobq ├── api_server.cr ├── api_validation.cr ├── config_mapper.cr ├── config_validator.cr ├── configure.cr ├── cron_job_scheduler.cr ├── dead_letter_manager.cr ├── delayed_job_scheduler.cr ├── error_context.cr ├── error_monitor.cr ├── job.cr ├── job_schema_registry.cr ├── json_schema.cr ├── middleware.cr ├── middlewares ├── retry.cr ├── throttle.cr └── timeout.cr ├── queue.cr ├── queue_factory.cr ├── recurring_job_scheduler.cr ├── redis_health.cr ├── redis_metrics.cr ├── redis_pipeline.cr ├── redis_store.cr ├── scheduler.cr ├── store.cr ├── worker.cr ├── worker_manager.cr └── yaml_config_loader.cr /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.DS_Store -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/crystal.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.github/workflows/crystal.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/.gitignore -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | crystal 1.17.1 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/README.md -------------------------------------------------------------------------------- /config/joobq.base.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/config/joobq.base.yml -------------------------------------------------------------------------------- /config/joobq.development.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/config/joobq.development.yml -------------------------------------------------------------------------------- /config/joobq.production.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/config/joobq.production.yml -------------------------------------------------------------------------------- /config/joobq.test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/config/joobq.test.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /joobq-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/joobq-logo.png -------------------------------------------------------------------------------- /joobq.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/joobq.svg -------------------------------------------------------------------------------- /playground/bench.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/bench.cr -------------------------------------------------------------------------------- /playground/config.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/config.cr -------------------------------------------------------------------------------- /playground/crystal_client_example.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/crystal_client_example.cr -------------------------------------------------------------------------------- /playground/custom_alert_notification_example.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/custom_alert_notification_example.cr -------------------------------------------------------------------------------- /playground/error_monitor_test.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/error_monitor_test.cr -------------------------------------------------------------------------------- /playground/error_monitoring_example.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/error_monitoring_example.cr -------------------------------------------------------------------------------- /playground/jobs/expire_jobs.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/jobs/expire_jobs.cr -------------------------------------------------------------------------------- /playground/jobs/fail_job.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/jobs/fail_job.cr -------------------------------------------------------------------------------- /playground/jobs/test_job.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/jobs/test_job.cr -------------------------------------------------------------------------------- /playground/load.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/load.cr -------------------------------------------------------------------------------- /playground/pipeline_benchmark.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/pipeline_benchmark.cr -------------------------------------------------------------------------------- /playground/pipeline_test.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/pipeline_test.cr -------------------------------------------------------------------------------- /playground/pipeline_usage_example.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/pipeline_usage_example.cr -------------------------------------------------------------------------------- /playground/simple_error_monitor_test.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/simple_error_monitor_test.cr -------------------------------------------------------------------------------- /playground/standalone_error_monitor_test.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/playground/standalone_error_monitor_test.cr -------------------------------------------------------------------------------- /scripts/validate-openapi.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/scripts/validate-openapi.cr -------------------------------------------------------------------------------- /shard.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/shard.lock -------------------------------------------------------------------------------- /shard.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/shard.yml -------------------------------------------------------------------------------- /spec/api_endpoints_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/api_endpoints_spec.cr -------------------------------------------------------------------------------- /spec/api_validation_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/api_validation_spec.cr -------------------------------------------------------------------------------- /spec/error_monitor_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/error_monitor_spec.cr -------------------------------------------------------------------------------- /spec/helpers/all_test_jobs.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/helpers/all_test_jobs.cr -------------------------------------------------------------------------------- /spec/job_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/job_spec.cr -------------------------------------------------------------------------------- /spec/jobs_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/jobs_spec.cr -------------------------------------------------------------------------------- /spec/joobq_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/joobq_spec.cr -------------------------------------------------------------------------------- /spec/middleware_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/middleware_spec.cr -------------------------------------------------------------------------------- /spec/queue_factory_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/queue_factory_spec.cr -------------------------------------------------------------------------------- /spec/queue_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/queue_spec.cr -------------------------------------------------------------------------------- /spec/race_condition_test_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/race_condition_test_spec.cr -------------------------------------------------------------------------------- /spec/retry_refactor_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/retry_refactor_spec.cr -------------------------------------------------------------------------------- /spec/scheduler_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/scheduler_spec.cr -------------------------------------------------------------------------------- /spec/spec_helper.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/spec_helper.cr -------------------------------------------------------------------------------- /spec/unique_queue_membership_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/unique_queue_membership_spec.cr -------------------------------------------------------------------------------- /spec/worker_manager_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/worker_manager_spec.cr -------------------------------------------------------------------------------- /spec/worker_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/worker_spec.cr -------------------------------------------------------------------------------- /spec/yaml_config_spec.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/spec/yaml_config_spec.cr -------------------------------------------------------------------------------- /src/joobq.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq.cr -------------------------------------------------------------------------------- /src/joobq/api_server.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/api_server.cr -------------------------------------------------------------------------------- /src/joobq/api_validation.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/api_validation.cr -------------------------------------------------------------------------------- /src/joobq/config_mapper.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/config_mapper.cr -------------------------------------------------------------------------------- /src/joobq/config_validator.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/config_validator.cr -------------------------------------------------------------------------------- /src/joobq/configure.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/configure.cr -------------------------------------------------------------------------------- /src/joobq/cron_job_scheduler.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/cron_job_scheduler.cr -------------------------------------------------------------------------------- /src/joobq/dead_letter_manager.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/dead_letter_manager.cr -------------------------------------------------------------------------------- /src/joobq/delayed_job_scheduler.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/delayed_job_scheduler.cr -------------------------------------------------------------------------------- /src/joobq/error_context.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/error_context.cr -------------------------------------------------------------------------------- /src/joobq/error_monitor.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/error_monitor.cr -------------------------------------------------------------------------------- /src/joobq/job.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/job.cr -------------------------------------------------------------------------------- /src/joobq/job_schema_registry.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/job_schema_registry.cr -------------------------------------------------------------------------------- /src/joobq/json_schema.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/json_schema.cr -------------------------------------------------------------------------------- /src/joobq/middleware.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/middleware.cr -------------------------------------------------------------------------------- /src/joobq/middlewares/retry.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/middlewares/retry.cr -------------------------------------------------------------------------------- /src/joobq/middlewares/throttle.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/middlewares/throttle.cr -------------------------------------------------------------------------------- /src/joobq/middlewares/timeout.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/middlewares/timeout.cr -------------------------------------------------------------------------------- /src/joobq/queue.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/queue.cr -------------------------------------------------------------------------------- /src/joobq/queue_factory.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/queue_factory.cr -------------------------------------------------------------------------------- /src/joobq/recurring_job_scheduler.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/recurring_job_scheduler.cr -------------------------------------------------------------------------------- /src/joobq/redis_health.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/redis_health.cr -------------------------------------------------------------------------------- /src/joobq/redis_metrics.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/redis_metrics.cr -------------------------------------------------------------------------------- /src/joobq/redis_pipeline.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/redis_pipeline.cr -------------------------------------------------------------------------------- /src/joobq/redis_store.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/redis_store.cr -------------------------------------------------------------------------------- /src/joobq/scheduler.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/scheduler.cr -------------------------------------------------------------------------------- /src/joobq/store.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/store.cr -------------------------------------------------------------------------------- /src/joobq/worker.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/worker.cr -------------------------------------------------------------------------------- /src/joobq/worker_manager.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/worker_manager.cr -------------------------------------------------------------------------------- /src/joobq/yaml_config_loader.cr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azutoolkit/joobq/HEAD/src/joobq/yaml_config_loader.cr --------------------------------------------------------------------------------