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

السؤال

نشر

أحتاج إلى أن أقوم بنسخ مجلد من مكان ما إلى آخر على خادم، لكن المشكلة هنا هي أن المجلد كبير للغاية وعملية نسخه تستغرق الكثير من الوقت، لذلك أريد أن أقوم بتنفيذ عملية النسخ هذه في الخلفية 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...