مشكلة عند تنفيذ سكربت عن طريق ال cmd

Rayan • منذ 6 سنوات

السلام عليكم ورحمة الله وبركاته

الاخوة / الاخوات الكرام  .. بعد التحية

تواجهني مشكلة عند تنفيذ سكربت php command  عن طريق cmd 

مع العلم ان ال freamwork المستخدم في التطبيق هو yii2

 

 

 

هذه الفنكشن موجودة داخل  الكنترول CommandController ملف commands

 

 

واقوم استدعائها عن طريق cmd بالامر التالي : php yii command/feed-all

كما هو موضح بالصورة الاولى

كلمات دليلية: cmd php script yii2

الإجابة الصحيحة

Ali Majrashi • منذ 6 سنوات

مراجعه سريعه للكود الي فهمته من الكود انه مطلوب منه يجيب بيانات مخزنة بقاعدة البيانات ثم يمررها لامر آخر وينتظر ١٦ ثانية قبل يكمل او ينهي الامر 

ملاحظة انت مستخدم timeout اتوقع انها خاصة بويندوز ممكن مايشتغل على سيرفرات ثانية مثل لينكس لان بلينكس المستخدم هو امر sleep

انت بصيغة الامر في السطر 27 استخدمت هالامر بالبداية

timeout 15s

بعد البحث الواضح ان الصح استخدام هالصيغه لتحديد الثواني للانتظار 

timeout /t 15

هنا راح ينتظر 15 ثانيه قبل يكمل

ثاني امر ملاحظة انك ماتقدر تحط امرين بنفس السطر حاليا انت مستخدم timeout وبعدها امر php بنفس السطر ممكن تجرب تحط بينهم علامة & او تفصل الامرين كل امر بسطر اتوقع ان سبب الخطا الاساسي هو ان يعتبر امر php الي انت كتبته مدخل parameter للامر timeout فعشان كذا يصير الخطا 

ملاحظة انتبه من استخدام الدالة passthru في php جدا خطيره وثغراتها كثيره وخاصه اذا بتمرر مدخلات مخزنة من قبل مستخدمين 

اذا كنت ترغب بتنفيذ كود والانتظار حتى ينتهي استخدم while في php بدل foreach او ابحث عن مكتبات التي تدعم async لعمل اتصال لاي api مثل مكتبة Guzzle في php واتوقع ان yii لديها الكثير من المكتبات الي ممكن تساعدك بهالشي 

الإجابات (5)

ZaFaR97 • منذ 6 سنوات

للأسف لا أملك أي معلومات، راجع السؤال التالي

https://stackoverflow.com/questions/18003930/batch-script-timeout-error-invalid-syntax-default-option-is-not-allowed-more?rq=1&utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

 

Ali Majrashi • منذ 6 سنوات

وعليكم السلام والرحمة 

اذا ممكن تحرير السؤال واضافة الامر المراد تنفيذه ومحتوى الكود لنستطيع مساعدتك 🌹

Rayan • منذ 6 سنوات

تم التحرير واضافة ما طلبته مني استاذ علي .. في حال وجود أي نواقص اتمنى اخباري ليتم ادراجها في السؤال

Ali Majrashi • منذ 6 سنوات
الإجابة الصحيحة
مميز

مراجعه سريعه للكود الي فهمته من الكود انه مطلوب منه يجيب بيانات مخزنة بقاعدة البيانات ثم يمررها لامر آخر وينتظر ١٦ ثانية قبل يكمل او ينهي الامر 

ملاحظة انت مستخدم timeout اتوقع انها خاصة بويندوز ممكن مايشتغل على سيرفرات ثانية مثل لينكس لان بلينكس المستخدم هو امر sleep

انت بصيغة الامر في السطر 27 استخدمت هالامر بالبداية

timeout 15s

بعد البحث الواضح ان الصح استخدام هالصيغه لتحديد الثواني للانتظار 

timeout /t 15

هنا راح ينتظر 15 ثانيه قبل يكمل

ثاني امر ملاحظة انك ماتقدر تحط امرين بنفس السطر حاليا انت مستخدم timeout وبعدها امر php بنفس السطر ممكن تجرب تحط بينهم علامة & او تفصل الامرين كل امر بسطر اتوقع ان سبب الخطا الاساسي هو ان يعتبر امر php الي انت كتبته مدخل parameter للامر timeout فعشان كذا يصير الخطا 

ملاحظة انتبه من استخدام الدالة passthru في php جدا خطيره وثغراتها كثيره وخاصه اذا بتمرر مدخلات مخزنة من قبل مستخدمين 

اذا كنت ترغب بتنفيذ كود والانتظار حتى ينتهي استخدم while في php بدل foreach او ابحث عن مكتبات التي تدعم async لعمل اتصال لاي api مثل مكتبة Guzzle في php واتوقع ان yii لديها الكثير من المكتبات الي ممكن تساعدك بهالشي 

Rayan • منذ 6 سنوات

السلام عليكم ورحمة الله وبركاته ..

 

يعطيك العافية استاذ علي .. ما شاء الله الله يزيدك ويرفع قدرك دنيا واخرة .. اجابة صحيحة 100%

 

الله ينفع بك الاسلام والمسلمين ويفرج همك وكربك .. شكراً لك 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !