{"id":24201579,"url":"https://github.com/mstgnz/cronjob","last_synced_at":"2026-05-09T03:32:28.129Z","repository":{"id":230038617,"uuid":"778304155","full_name":"mstgnz/cronjob","owner":"mstgnz","description":"timed trigger, manage all your projects' cronjob tasks in one place.","archived":false,"fork":false,"pushed_at":"2024-12-30T13:33:24.000Z","size":1857,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-23T21:32:51.636Z","etag":null,"topics":["cronjob","go","htmx","postgres","schedule","trigger"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mstgnz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"mstgnz"}},"created_at":"2024-03-27T13:25:20.000Z","updated_at":"2025-03-18T18:34:14.000Z","dependencies_parsed_at":"2024-05-31T19:08:48.470Z","dependency_job_id":"70b9f567-5979-48ef-a4d5-4ac04400dc70","html_url":"https://github.com/mstgnz/cronjob","commit_stats":null,"previous_names":["mstgnz/cronjob"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/mstgnz/cronjob","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstgnz%2Fcronjob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstgnz%2Fcronjob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstgnz%2Fcronjob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstgnz%2Fcronjob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mstgnz","download_url":"https://codeload.github.com/mstgnz/cronjob/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstgnz%2Fcronjob/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32805909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cronjob","go","htmx","postgres","schedule","trigger"],"created_at":"2025-01-13T21:16:23.287Z","updated_at":"2026-05-09T03:32:28.109Z","avatar_url":"https://github.com/mstgnz.png","language":"Go","funding_links":["https://github.com/sponsors/mstgnz"],"categories":[],"sub_categories":[],"readme":"# Cronjob\n### Timed Trigger\n\nIt is difficult to manage cronjob tasks on a server. This project provides an environment where you can define your cronjob tasks. It allows you to manage and track your scheduled tasks in a more flexible way.\n\n\n## Features\n- Cronjob Definitions: Define cronjob tasks for each of your projects.\n- URL Information: Specify which URL to send requests to for each cronjob.\n- Task Scheduling: Determine when tasks will execute.\n- Logging: Detailed logs include task execution times and responses.\n- Email Notifications: Optionally send notifications to specified email addresses.\n- Message Notifications: Optionally send notifications to specified phone number.\n\n\n## Considerations\nThis application utilizes a database locking mechanism to prevent duplicated cronjob tasks when running multiple instances in a Kubernetes (k8s) environment. \n\nThe instance that first adds a record to the \"triggered\" table will be the one to trigger the cronjob task. Subsequent instances will be prevented from creating a new record due to an existing one, thereby preventing duplicate task executions. Completed tasks are then removed from the \"triggered\" table.\n\nHowever, it is strongly recommended that users implement additional control mechanisms on their own systems.\n\n\n## Kubernetes Deployment\n\nThe application is designed to run in a Kubernetes environment with high availability and scalability in mind. We provide comprehensive Kubernetes configurations and deployment guides in the [k8s](k8s) directory.\n\nKey deployment features include:\n- High availability with multiple replicas\n- Automatic scaling based on CPU and Memory usage\n- Rolling updates for zero-downtime deployments\n- Health checks and self-healing capabilities\n- SSL/TLS termination with automatic certificate management\n- Centralized configuration management\n\nFor detailed deployment instructions and configuration options, please refer to the [Kubernetes Deployment Guide](k8s/README.md).\n\n\n## Contributing\nThis project is open-source, and contributions are welcome. Feel free to contribute or provide feedback of any kind.\n\n\n## License\nThis project is licensed under the Apache License. See the [LICENSE](LICENSE) file for more details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmstgnz%2Fcronjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmstgnz%2Fcronjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmstgnz%2Fcronjob/lists"}