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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: جلوگیری ازتوقف برنامه بخاطر قطع لحظه ای اینترنت,تشخیص نوع خطا برنامه نویسی shell  (دفعات بازدید: 1710 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام

فرض کنید یک جدول پایگاه داده شمار بسیار زیادی 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

آیا اگر نوع خطا تشخیص داده شود با ایجاد تاخیر می توان از توقف برنامه جلوگیری کرد؟
تشخیص نوع خطا؟
« آخرین ویرایش: 12 شهریور 1392، 01:49 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام

پیشنهاد یکی از دوستان این بود که برنامه طوری باشد که فقط یک 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
« آخرین ویرایش: 12 شهریور 1392، 10:59 ق‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.

آفلاین ali.abry

  • High Hero Member
  • *
  • ارسال: 1224
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.
فکر کنم منظورشون این هست که خود اون برنامه بهش اینترنت نرسه , نه اون کسی که برنامه رو اجرا کرده اینترنتش قطع بشه .

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
اگر با اس اس اچ  ;D وصل می شید می توانید ازscreen  استفاده کنید.
فکر کنم منظورشون این هست که خود اون برنامه بهش اینترنت نرسه , نه اون کسی که برنامه رو اجرا کرده اینترنتش قطع بشه .

سلام
من نمیدانم منظور شما از ssh , ... چی هست اما من با debian , command line :shell  کار می کنم  modem : tenda
این پیشنهاد شخص دیگری بود
خیلی ممنون
« آخرین ویرایش: 12 شهریور 1392، 01:17 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین MHA152

  • High Hero Member
  • *
  • ارسال: 2745
  • جنسیت : پسر
  • من عاشق یونیکسی ها هستم
یک دستور داریم اسمش wait است من تا حالا ازش استفاده نکردم ولی اگه از دوستان کسی بلده بگه شاید کار این بنده خدا راه افتاد
بهتون پیشنهاد می کنم به دنیای بزرگ شبه−یونیکس وارد بشید و از پیشرفت لذت ببرید
جیمیلم

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
یک دستور داریم اسمش 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);
شاید اگر تشخیص دهیم که وقتی دستور بالا منجر به خطای مزبور می شود چه خروجی برمی گرداند آن گاه با گذاشتن یک شرط و پس از ایجاد تاخیر دستور را دوباره اجرا کنیم به جواب برسیم
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني