اذهب إلى المحتوى
  • 0

تشغيل كود PHP في الخلفية؟

Emad Saif

السؤال

أحتاج إلى أن أقوم بنسخ مجلد من مكان ما إلى آخر على خادم، لكن المشكلة هنا هي أن المجلد كبير للغاية وعملية نسخه تستغرق الكثير من الوقت، لذلك أريد أن أقوم بتنفيذ عملية النسخ هذه في الخلفية Background.

هل توجد طريقة لتشغيل كود PHP بطريقة async-await على سبيل المثال؟ أو حتى عمل service لتشغيل الكود في الخلفية أو أي طريقة أخرى؟

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك إنشاء سكريبت مخصص لنقل ذلك المجلد وتنفيذه كإجرائية منفصلة ضمن الإجرائية الرئيسية لديك ليعمل ضمن الخلفية، التابع التالي يفيد في تنفيذ أوامر الصدفة بحسب نظام التشغيل (لينكس أو ويندوز)

function backgroundProcess($cmd) {
    // ويندوز
    if (substr(php_uname(), 0, 7) == "Windows"){
        pclose(popen("start /B ". $cmd, "r")); 
    // لينكس
    } else {
        exec($cmd . " > /dev/null &");  
    }
}

ويمكن استخدامه لتنفيذ ملف PHP مع تمرير معاملات للملف كما لو أننا ننفذ الملف من سطر الأوامر بشكل اعتيادي كالتالي:

backgroundProcess("php /path/to/copy_folder.php folder /path/to/destination")

  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

أظنك قد تحتاج وصول SSH لتنفيذ مثل هكذا أمر.

قد يمكنك تنفيذ أمر تشغيل السكربت المستهدف عن طريق الأمر: 

php scriptname.php

يمكنك استعمال الوظيفة exec لهذا الأمر. كالتالي: 

exec('php scriptname.php')

ان كنت قد تحتاج ايضا التعامل مع خرج هذا السكربت على نحو معين، يمكنك الاستفادة من هاته الاجابة لسؤال سابق لك: 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...