pengembangan kengerian

Baru saja saya berurusan terutama dengan kode bukan dengan administrasi sehingga drama aku berdiri dengan kodene lebih dari server seperti, Jadi saya memutuskan untuk hanya menuliskan beberapa baris tentang omong kosong yang aku berhasil mendapatkan mereka. Keras bersiap-siap untuk mempresentasikan proyek Anda apa jenis memaksa pembukaan bagian dramatis

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX dan proses dinamis lainnya yang mengirimkan interaktivitas dan visi kontemporer dan meningkatkan fungsi. Kami berpikir tentang banyak keputusan seperti paling diterima kuki dengan informasi dan kemudian php untuk memeriksa apakah informasi sah, dan jika semuanya OK. Cukup terpelajar solusi tapi akhirnya muncul bahkan lebih baik versi. HTML akan dilaksanakan di noscript. Saya pikir itu adalah penyelesaian yang paling elegan.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Pada dasarnya situasi sepele jika kita berhenti JS dukungan akan diarahkan ke URnojs.html. Solusi sederhana dan sangat efektif

  • PHP multhithreading – sangat niškovosta's hanya sesuatu yang sangat berguna untuk prosesor dengan inti lainnya (bukan berarti ednoâdreni yang tidak OK tapi dengan banyak sistem nuklir yang lain hal bir). Perangkat lunak kami memiliki bagian yang berkaitan dengan pengumpulan informasi lain API – dan importva dalam database kami. Obŝovzeto tidak ada tantangan kecuali bahwa kita menerapkan php lagi dengan multhithreading dalam cli mode, karena proses ini cukup besar dan perlu atomatiziran untuk memiliki seseorang melakukannya dengan tangan. Di sini ada sebuah drama terkait dengan fokrvaneto proses dan tidak menciptakan aliran proses anak-(a) bahwa ia sedang menunggu sebuah script untuk priklûčabota untuk membuat yang baru. Bodoh itu membunuh gagasan tentang apa perilaku yang benar-benar multiprocessing bukanlah multhithreading tapi di sini adalah rincian. Pertama kita menempatkan & Setelah sidang, yang berarti skrip untuk melanjutkan pekerjaan tetapi lagi ada tidak ada perubahan dalam perilaku diperlukan dan standar output dari script untuk diarahkan – dalam kasus saya OK untuk /dev/null 🙂 Накрая структурата на тази част от кода изглеждаше така
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
}else if ($pid) {
// we are the parent
echo "I'm parent  \n";
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
echo "I'm a child $timer  \n";
exec("$command > /dev/null &");
exit (0);
}

Primerčeto lagi sepele. Kinerja sangat terkesan dengan sela antara proses dan sebagainya saya membuat tentang 50 anak proses-yang membuat giliran pergi 7800+ MySQL menyisipkan untuk tentang 30-40 SEC. Dan mesin sangat halus karena kami uji v″r″r sebelum membuat aplikasi nyata.

  • MySQL querys – Aku terkejut oleh kebodohan besar. Ada kode yang melakukan 4-5 tidak perlu query ke database, Alih-alih menggunakan sql query dan kemudian lemak utama pekerjaan itu php-itu. Drama itu seperti, sebagian- berikutnya adalah permintaan yang mengambil informasi dari hasil kueri yang kemudian digunakan untuk membuat permintaan lainnya seperti dia menjabat untuk argumen. Situasi cukup jelek dan gemuk. Subquery dan rupanya wilayah asing dan bergabung dengan kiri atau hanya belum disarikan hal baik. Aku punya segalanya aku menulis ulang aplikasi pekerjaan yang cukup baik dan beban sebagai seluruh jatuh oleh tentang 200% untuk bagian yang sama dari kode.

В общи линии това са нещата на последък с които се заниамваме и немога да кажа че е скучно но понякога се изумявам от разни необмисляни парчета код които трябва да поправям а най стеращното е че често са мои 😆

Ditingkatkan oleh Zemanta

2 comments

  1. И аз имам тегления на данни, сложени в crontab-a. Пробвах преди със & в края, но ставаше пиково натоварване, грозна история. Сега съм ги оставил, като свърши единия процес, да пуска другия, но това е ужасТ :> Като зацикли някъде и всичко отива по дяволитетова го решавам като килвам старите процеси, като дойде време да се пуска новия, но това е още по-голям ужасТ, защото губя данни. Та ще се се опитам да имплементирам, твоето решене по този въпрос. Благодарско! 🙂

    1. Ами по моя метод хубавото е че информацията може да се обработва от няколко процеса едновременно но това също ти гарантира по голямо натоварване 😉 Баланса между натоварване и скорост винаги е много тънък. Всичко опира до тестове.

Tinggalkan balasan

Alamat email Anda tidak akan dipublikasikan. Kolom yang harus diisi ditandai *

anti SPAM *