انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: rahmani در 11 شهریور 1392، 08:04 ب‌ظ

عنوان: جلوگیری ازتوقف برنامه بخاطر قطع لحظه ای اینترنت,تشخیص نوع خطا برنامه نویسی shell
ارسال شده توسط: rahmani در 11 شهریور 1392، 08:04 ب‌ظ
سلام

فرض کنید یک جدول پایگاه داده شمار بسیار زیادی record دارد یک برنامه php برای هر fileمربوط به ان record را  از روی اینترنت برداشته و آن را  واکشی می کند اما خطای زیر موجب توقف برنامه می شود من فکر می کنم این خطا بخاطر قطع لحظه ای اینترنت است چون پس از راه اندازی دوباره برنامه file مربوط به همان record را بخوبی واکشی می کند

Warning: SimpleXMLElement::__construc...........[simplexmlelement.--construct]: failed to open stream: HTTP
request failed! in /var/www/projects
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /var/www/projects

آیا اگر نوع خطا تشخیص داده شود با ایجاد تاخیر می توان از توقف برنامه جلوگیری کرد؟
تشخیص نوع خطا؟
عنوان: پاسخ : چگونگی جلوگیری از توقف برنامه بخاطر قطع لحظه ای اینترنت
ارسال شده توسط: rahmani در 12 شهریور 1392، 10:36 ق‌ظ
سلام

پیشنهاد یکی از دوستان این بود که برنامه طوری باشد که فقط یک record را به ان pass دهیم و برنامه فقط برای همان record به اینترنت برود و پردازش و واکشی اطلاعات را انجام دهد
سپس  یک قطعه code در shell بنویسم که record را از جدول بازیابی کرده و سپس در یک حلقه تکرار record را با دستور wget به برنامه pass کرده تا برنامه کار پردازش اطلاعات را انجام دهد

اما من نمیدانم قطعه code در shell چطور باید نوشته شود
 #!/bin/bash
for i in {1..9}
do
   wget "http://localhost/getBookData.php/id/$i"
done
عنوان: پاسخ : چگونگی جلوگیری از توقف برنامه بخاطر قطع لحظه ای اینترنت, برنامه نویسی در shell
ارسال شده توسط: alend در 12 شهریور 1392، 11:52 ق‌ظ
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.
عنوان: پاسخ : چگونگی جلوگیری از توقف برنامه بخاطر قطع لحظه ای اینترنت, برنامه نویسی در shell
ارسال شده توسط: ali.abry در 12 شهریور 1392، 11:55 ق‌ظ
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.
فکر کنم منظورشون این هست که خود اون برنامه بهش اینترنت نرسه , نه اون کسی که برنامه رو اجرا کرده اینترنتش قطع بشه .
عنوان: پاسخ : چگونگی جلوگیری از توقف برنامه بخاطر قطع لحظه ای اینترنت, برنامه نویسی در shell
ارسال شده توسط: rahmani در 12 شهریور 1392، 12:08 ب‌ظ
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.
فکر کنم منظورشون این هست که خود اون برنامه بهش اینترنت نرسه , نه اون کسی که برنامه رو اجرا کرده اینترنتش قطع بشه .

سلام
من نمیدانم منظور شما از ssh , ... چی هست اما من با debian , command line :shell  کار می کنم  modem : tenda
این پیشنهاد شخص دیگری بود
خیلی ممنون
عنوان: پاسخ : جلوگیری ازتوقف برنامه بخاطر قطع لحظه ای اینترنت,تشخیص نوع خطا برنامه نویسی shell
ارسال شده توسط: MHA152 در 13 شهریور 1392، 11:23 ق‌ظ
یک دستور داریم اسمش wait است من تا حالا ازش استفاده نکردم ولی اگه از دوستان کسی بلده بگه شاید کار این بنده خدا راه افتاد
عنوان: پاسخ : جلوگیری ازتوقف برنامه بخاطر قطع لحظه ای اینترنت,تشخیص نوع خطا برنامه نویسی shell
ارسال شده توسط: rahmani در 13 شهریور 1392، 01:08 ب‌ظ
یک دستور داریم اسمش wait است من تا حالا ازش استفاده نکردم ولی اگه از دوستان کسی بلده بگه شاید کار این بنده خدا راه افتاد
سلام ممنون از لطفتون دستور sleep باعث ایجاد تاخیر در برنامه می شود
<?php

// current time
echo date('h:i:s') . "\n";

// sleep for 10 seconds
sleep(10);

// wake up !
echo date('h:i:s') . "\n";

?>
اما برای من مهم این است که قبل از این که برنامه توسط خطای متوقف شود در برنامه تاخیر ایجاد کنیم که فکر می کنم برای این کار تشخیص نوع خطا و warning لازم هست
برای مثال دستور زیر xml file را از اینترنت می گیرد
$xml = new SimpleXMLElement($URL,null,true);
شاید اگر تشخیص دهیم که وقتی دستور بالا منجر به خطای مزبور می شود چه خروجی برمی گرداند آن گاه با گذاشتن یک شرط و پس از ایجاد تاخیر دستور را دوباره اجرا کنیم به جواب برسیم