يتم تصنيع هذا المشروع في NodeJS (JavaScript) ، لتنفيذ cronjob لحذف المستندات في Mongodb أو Scylladb ، التي تتطابق مع الاستعلامات!
يوجد هذا المشروع لمساعدة المطورين أو مدراء قاعدة البيانات ، على أن يكون لديهم طريقة أخرى لحذف المستندات القديمة ، وهذا ليس ضروريًا!
في TTL ، يتم حذف المستند عندما تكون قيمة الحقل المفهرس أكبر من التاريخ الحالي!
مثال:
WebhookSchema = {
event : {
type : String ,
} ,
body : {
type : Object ,
} ,
created_at : {
type : Date ,
expiryAfterInSeconds : 3600 , // 1 Hour
} ,
}
// ...
console . log ( Webhook . findOne ( { } ) )
// Output
{
event : 'paid' ,
body : {
...
} ,
created_at : '2024-03-01T16:23:19.655Z' ,
} إلى هذا المستند يتم حذفه في المستقبل ، يجب أن يكون التاريخ الحالي 2024-03-01T17:23:19.655Z أو أكثر ، مثل 2024-03-01T17:30:19.655Z !
ولكن ، إذا كنت بحاجة إلى حذف المستند ، عندما تكون هناك حاجة إلى قاعدة أخرى ، فستستخدم هذا المشروع!
يتم صنع هذا المشروع في NodeJS (LTS) ، ويستخدم MongoDB (برنامج التشغيل الرسمي) لتوصيل وحذف المستندات المحددة!
لاستخدام هذا المشروع ، تحتاج إلى استنساخ هذا ، تشغيل الأمر التالي:
git clone https://github.com/ramonpaolo/clear-job قبل رفع المشروع ، قد تحتاج إلى تكوين .env! قد تحتاج إلى إعادة تسمية .env.example إلى .env !
Afther cofngiure the .env ، يمكنك تشغيل docker-corms ، أو script.sh ، لرفع cronjob و mongodb للاختبارات!
| متغير البيئة | يكتب | مطلوب | مثال | القيم الممكنة | القيمة الافتراضية |
|---|---|---|---|---|---|
| project_name | خيط | نعم | "كرونجوب" | * | |
| app_name | خيط | نعم | "كرونجوب" | * | |
| node_env | خيط | لا | "تطوير" | * | |
| execute_when_init | خيط | لا | "حقيقي" | "صحيح" ، "خطأ" | "خطأ شنيع" |
| execute_every_time | رقم | لا | 5 | * | 60 |
| execute_time_unit | خيط | لا | "ثواني" | "ثوان" ، "دقائق" ، "ساعات" ، "أيام" ، "شهور" ، "سنوات" | "دقائق" |
| mongo_password | خيط | لا | "امتحان" | * | |
| mongo_username | خيط | لا | "امتحان" | * | |
| mongo_url | خيط | نعم | "MongoDB: // Test: Test@Mongo" | * | |
| database_name | خيط | نعم | "امتحان" | * | |
| collection_name | خيط | نعم | "Webhooks" | * | |
| field_date | خيط | نعم | "create_at" | * | |
| اختياري | خيط | لا | "{" env ":" Development "}" | * | "{}" |
| delete_documents | خيط | لا | "حقيقي" | "صحيح" ، "خطأ" | "خطأ شنيع" |
يمكنك تمكين المهمة من إرسال بريد إلكتروني عبر SendGrid ، عندما يتم تنفيذ المهمة بنجاح ، أو بخطأ!
لتمكين هذا ، تحتاج فقط إلى شيئين: 1- هل لديك حساب sendGrid 2- تكوين هذا envs:
| متغير البيئة | يكتب | مطلوب | مثال | القيم الممكنة | القيمة الافتراضية |
|---|---|---|---|---|---|
| الإخطار | خيط | نعم | "sendgrid" | "sendgrid" | |
| sendGrid_API_Key | خيط | نعم | * | ||
| to_email | خيط | نعم | * | ||
| من _email | خيط | نعم | * |