mirror of
https://github.com/cypht-org/cypht.git
synced 2026-04-24 20:46:04 +03:00
[PR #1196] feat(backend): adding idle and polling mechanism to imap #1331
Labels
No labels
2fa
I18N
PGP
Security
Security
account
advanced_search
advanced_search
announcement
api_login
authentication
awaiting feedback
blocker
bug
bug
bug
calendar
config
contacts
core
core
devops
docker
docs
duplicate
dynamic_login
enhancement
epic
feature
feeds
framework
github
github
gmail_contacts
good first issue
help wanted
history
history
imap
imap_folders
inline_message
installation
keyboard_shortcuts
keyboard_shortcuts
ldap_contacts
mobile
need-ssh-access
new module set
nux
pop3
profiles
pull-request
question
refactor
release
research
saved_searches
smtp
strategic
tags
tests
themes
website
wordpress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/cypht#1331
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/cypht-org/cypht/pull/1196
Author: @Shadow243
Created: 8/25/2024
Status: 🔄 Open
Base:
master← Head:imap-idle-polling-mechanism📝 Commits (10+)
3aa6f7aConsole commands added1becf62Refactored cli-service structuredea1ba1Job & Queue added with multiple drivers05ff9c6Events & listeners, Scheduling added4e0dad1Adding Notifications29481aeadd Singleton Class for containerBuilderdb21774Refactor queue worker command & adding error handling895ad7aQueue manager: dispatching jobs to queue920a1aaComplete Database queue driver and tested in real scenario7a21533Sqs & Redis queue driver completed and tested📊 Changes
84 files changed (+6317 additions, -429 deletions)
View changed files
📝
.env.example(+34 -0)📝
composer.json(+18 -1)📝
composer.lock(+1787 -400)📝
config/app.php(+0 -20)➕
config/broadcasting.php(+7 -0)➕
config/queue.php(+13 -0)➕
config/redis.php(+22 -0)➕
config/services.php(+26 -0)➕
config/sqs.php(+9 -0)➕
console(+97 -0)📝
index.php(+4 -2)📝
lib/cache.php(+17 -1)📝
lib/db.php(+5 -0)📝
lib/framework.php(+1 -0)📝
lib/ini_set.php(+1 -1)➕
lib/sqs.php(+140 -0)📝
modules/imap/handler_modules.php(+47 -0)📝
modules/imap/output_modules.php(+4 -2)📝
modules/imap/setup.php(+15 -0)📝
modules/imap/site.js(+65 -1)...and 64 more files
📄 Description
Summary
This PR introduces a backend service that includes:
Key Features
Event Class: Implements an event dispatching system where events can be defined and dispatched across the system. This allows for decoupled execution of processes in response to events.
Scheduler: Manages task scheduling with cron-like expressions, mutex handling to prevent task overlapping, and timezone support.
Commands: Defines and executes registered commands with dependency injection support.
Notifications: Notification system with extensible drivers for various channels (e.g., Telegram, SMS, Slack). It allows sending notifications based on event triggers such as new emails.
Listeners: Allows the system to react to dispatched events by triggering actions such as notifications or logging.
Example Usage Command using database queue driver
Example Usage Command using sqs queue driver
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.