Warning: fopen(/homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/gt-cache/ms/_ms_tag_application) [function.fopen]: failed to open stream: Disk quota exceeded in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1183

Warning: flock() expects parameter 1 to be resource, boolean given in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1184

Warning: fwrite(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1188

Warning: fclose(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1190
Evilprofessor.co.uk »Permohonan

Posts tagged: permohonan

"Masuk dengan Twitter" menggunakan Zend Rangka Kerja

Oleh , Khamis Mac 17, 2011 1:07 am

Walaupun semua benci Twitter pada masa ini, saya telah menetapkan untuk membuat permohonan baru Twitter berasaskan. Sebagai seorang yang menguruskan beberapa akaun (kedua-dua peribadi dan untuk kerja-kerja amal saya) Saya telah memerlukan satu alat untuk beberapa ketika bahawa saya cuma mendapatkan sekitar bertulis (lebih daripada itu dalam masa terdekat ...).

Saya telah membaca di Zend_Oauth_Consumer dan bagaimana ia boleh digunakan untuk mendapatkan kebenaran untuk berinteraksi dengan Twitter menggunakan OAuth . Semua baik dan baik, saya mempunyai kekunci akses saya dan saya meriah boleh mencatat dunia pada pihak pengguna. Ada banyak sumber di luar sana untuk melakukan ini jadi saya tidak akan orang gerek.

Langkah seterusnya adalah untuk membenarkan orang ramai untuk kembali ke laman web, log masuk dan mengubah suai akaun mereka. Ini adalah di mana saya sampai sedikit masalah. Menggunakan contoh-contoh kod di laman web bermakna yang saya telah Twitter meminta saya untuk mendapatkan kebenaran akses semula setiap untuk login, tidak baik. Mengimbas melalui rangka kerja saya tidak dapat melihat apa-apa jua yang akan membolehkan saya hanya meminta pengesahan. Yang tidak berkata tidak ada yang, tetapi tidak ada seolah-olah sebagai satu mekanisma pengesahan yang boleh dituntut tanpa mengetahui token akses sudah.

Alternatif untuk melaksanakan log yang berasaskan tapak dalam atau entah bagaimana menyimpan tanda akses pengguna pada klien (dienkrip tentu). Kesemua ini tidak kelihatan seperti penyelesaian yang baik / sesuai.

"Masuk dengan Twitter" menggunakan Zend Rangka Kerja 'Continue reading »

Telanjang Zend_Layout dan Zend_View

Oleh , Selasa 10 Ogos 2010 23:47

Dalam artikel ini, saya melihat yang menggunakan Zend_Layout dan Zend_View bersama-sama dengan pengawal mudah hadapan untuk menunjukkan bagaimana ia dapat dimulakan untuk mengasingkan logik perniagaan dan pembentangan di dalam permohonan anda. Kod semua boleh didapati di github:
Zend_Layout telanjang dan Zend_View pada GitHub .

Teruskan 'Zend_Layout Naked dan Zend_View' bacaan »

PHP Rekabentuk Corak - Corak Pemerhati

Oleh , Selasa 29 Disember 2009 22:02

Saya telah membaca Corak Ketua Rekabentuk Pertama baru-baru ini dan telah mengambil keputusan untuk menulis beberapa corak sebagai contoh PHP untuk kebaikan saya sendiri. Yang pertama bahawa saya telah memutuskan untuk kod sehingga Corak Pemerhati . Takrif formal Corak Observer:

Corak pemerhati (subset tak segerak yang menerbitkan / melanggan corak ) adalah perisian reka bentuk corak di mana objek , dikenali sebagai subjek, mengekalkan senarai tanggungannya, dipanggil pemerhati, dan memberitahu mereka secara automatik apa-apa perubahan negeri, biasanya dengan memanggil salah satu daripada mereka kaedah . Ia terutamanya digunakan untuk melaksanakan sistem pengendalian acara yang diedarkan.

Sebagai sistem menjadi lebih longgar serta memastikan bahawa apabila suatu peristiwa yang berlaku semua sistem yang memerlukan pengetahuan ini kemas kini dimaklumkan. Sebagai contoh, blog post, selepas menyelamatkan jawatan kita mungkin perlu untuk mengemaskini enjin carian (contohnya Lucene), kini sitemap, tag, pengguna e-mel yang dilanggan, dan lain-lain corak pemerhati membolehkan pemaju untuk menambah pendengar tambahan tanpa menyunting objek dilihat mereka . Dengan menyuntik pemerhati (iaitu enjin carian update pemerhati, penjana sitemap, dll) ke dalam mata pelajaran (iaitu blog selepas penyuntingan sistem), kita boleh membenarkan ia untuk melaksanakan segala update yang perlu tanpa sebarang perubahan.

Terus 'PHP Corak Design - Pemerhati Corak' bacaan »

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 3

Oleh , Jumaat 4 Disember 2009 23:37

Pengenalan

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja kelompok pemprosesan berjuta-juta rekod data setiap hari dan saya telah memikirkan tentang semua mesin yang duduk di sekitar setiap hari dan setiap melakukan apa-apa untuk beberapa jam baru-baru ini. Bukankah lebih baik jika kita boleh menggunakan mesin tersebut untuk mengukuhkan kuasa pemprosesan sistem kami? Dalam set rencana-rencana ini, saya akan melihat manfaat yang berpotensi menggajikan pejabat grid yang menggunakan persekitaran virtualised.

Di bahagian 2 kita melihat pekerjaan pelayan akan berjalan, dan bagaimana kerja sepatutnya dikonfigurasi untuk mencapai jumlah terbesar pemprosesan di samping memastikan bahawa setiap pekerjaan diproses tanpa gagal.

Menubuhkan pekerja anda - atau pelayan tempang

Langkah seterusnya dalam proses untuk menubuhkan pekerja maya anda. Untuk ini, saya akan menggunakan pemasangan CentOS menggunakan VirtualBox. Saya hendak install mySQL dan PHP pada pelayan, juga dikenali sebagai tempang (Li Nux,. m ySQL P HP,) Server (Saya mungkin telah dibuat bahawa nama sehingga).

  • Memasang VirtualBox pada mesin tingkap anda (ikut pautan)
  • Muat turun dan pasang CentOS (semasa versi 5,3) dalam mesin maya yang dicipta

Tidak ada titik saya pergi ini mungkin ada s 1.000 tutorial hebat di luar sana (ok, di sini adalah satu: Mewujudkan dan Managing CentOS maya mesin di bawah virtualbox ). Titik penting untuk mengambil perhatian saya kira bahawa saya dipanggil mesin maya saya GridMachine.

Sejauh seperti pilihan pelanggan maya dan sistem operasi saya pergi, tidak ada sebab besar yang menarik untuk setiap pilihan. VirtualBox adalah sesuatu yang saya gunakan pada mesin rumah saya dan disokong oleh tiga sistem pengendalian utama. Saya memilih CentOS sebagai OS yang stabil baik dan saya menggunakannya pada pelayan web saya sendiri. Saya mempercayai besar dalam alat-alat yang sesuai untuk kerja (walaupun saya memohon 'menggunakan yang paling cepat dan paling mudah untuk anda' minda di sini), jadi jika sistem operasi X menjalankan kod anda lebih cepat dan cekap menggunakan bahawa bukannya :)

Penting memastikan bahawa VM anda menggunakan DHCP, sebaliknya bagi setiap mesin maya baru perlu diatur secara berasingan yang merupakan sesuatu yang kita tidak want.By menggunakan DHCP kita tidak perlu untuk mengkonfigurasi tetapan rangkaian individu untuk mesin pekerja, DHCP akan menyerahkan keluar IP untuk anda. Oleh itu anda boleh menyalin mesin maya anda tentang pejabat tanpa perlu bimbang menetapkan setiap satu (ini meningkatkan skala dan mengurangkan pentadbiran pekerja).

Proses anda perlu berusaha untuk mencapai adalah untuk mendapatkan mesin baru fizikal, memasang VirtualBox, dan kemudian cukup banyak menempatkan imej maya tanpa banyak lain. Ia mungkin bijak untuk persediaan semua pekerja anda pada subnet yang berbeza supaya anda sekurang-kurangnya dapat melihat berapa banyak mesin berjalan. Anda juga perlu untuk menubuhkan mesin anda ke atas pajakan yang lama atau tanpa had pajakan DHCP.

Bagaimana menjalankan Pekerjaan pada pekerja

Ini adalah kawasan yang menarik dan terdapat beberapa kaedah yang sah untuk memproses kerja pada pekerja. Di sini saya hanya akan membincangkan dua yang paling jelas:

  • Sentiasa menjalankan skrip: skrip A, sama ada skrip shell, atau skrip PHP dilaksanakan sekali pada pekerja dan berjalan sebagai sebahagian daripada gelung tak terhingga. Saya telah didiskaunkan kaedah ini sebagai salah satu kemalangan skrip dan berpotensi untuk pekerja anda akan terhenti berjalan tanpa sejenis campur tangan.
  • Cron pelaksanaan skrip berasaskan: Setiap minit X daemon cron bermula panggilan kepada script kamu untuk mendapatkan hal yang terjadi. Tanpa semakan beberapa ini boleh membawa kepada salinan banyak berjalan skrip pekerja anda.

Keputusan saya adalah pergi dengan cron yang bermula skrip shell setiap minutes. yang 10 skrip shell saya melaksanakan tugas-tugas berikut:

  1. Dapatkan senarai proses dan grep ini untuk 'php'. Jika tidak dijumpai, maka terus.
  2. Panggil kod kerja anda, dalam kes saya ini akan menjadi PHP sesuatu berdasarkan
  3. Skrip pekerja melengkapkan jangka
  4. Bersedia untuk pergi sekali lagi pada panggilan yang sesuai akan datang

Skrip Bash saya kelihatan seperti berikut:

  #! / Bin / sh
 jika ps ax | grep-v grep | grep php> / dev / null
 kemudian
     echo "Kerja sedang memprosesnya, keluar"
 lain
     echo "Kerja tidak berjalan, bermula sekarang"
     php yourJobProcessingScript.php
 Wayar 

Nota: ini gema hampir sepenuhnya sia-sia, tetapi boleh membantu orang seterusnya yang datang untuk mencuba dan mengedit mereka.

Yang menyimpulkan set mesin pekerja maya, cepat, mudah, dan mudah untuk menyalin setiap keping baru perkakasan yang diterima. 'Kepintaran' sistem grid benar-benar tidak dalam OS digambarkan, semua untuk melakukan dengan kod yang diwujudkan untuk pekerjaan proses, konfigurasi pekerjaan, dan dalam memastikan bahawa kerja berjalan apabila sesuai (iaitu apabila tuan rumah adalah terbiar ).

Menubuhkan Windows untuk Initialise Pekerja

Tugas pertama adalah untuk bekerja arahan yang diperlukan untuk menjalankan mesin maya daripada baris arahan tingkap. Jika anda telah dipasang virtualBox di lokasi lalai dan anda telah dinamakan GridMachine pekerja anda, maka arahan yang diperlukan untuk memuatkan pekerja anda adalah:

  "C: Program Files \ \ Ahd \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Walau bagaimanapun untuk menjalankan skrip dalam keadaan 'tidak berkepala' kita perlu menggunakan:

  "C: Program Files \ \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = mati 

Ini akan mula mesin maya tanpa GUI dan membenarkan untuk menyelamatkan keadaan dengan anggun. Hujah kedua mematikan RDP supaya ia tidak bercanggah dengan tingkap RDP, atau memberi mesej tentang pendengaran di pelabuhan 3389. Nama mesin maya adalah case sensitive!

Seterusnya, kita akan perlu untuk menetapkan tingkap untuk memulakan VM pekerja kami sekali mesin telah terbiar. Untuk melakukan ini (pada Windows XP), anda akan perlu pergi Start -> All Programs -> Aksesori -> Utiliti Sistem -> Berjadual Tugas seperti di bawah:

dijadualkan tugas

Kemudian klik pada 'Tambah Petugas Terjadual' diikuti dengan melayari untuk menambah program tersuai. Navigate kepada tulisan VBoxManage anda dan klik ok. Jadual tugas anda untuk mana-mana pilihan (kami akan menukar ini pada minit) dan terus. Selepas ponteng skrin seterusnya tingkap akan meminta anda yang anda mahu menjalankan tugas ini, saya hendak mencadangkan sama ada 'Pentadbir' atau mewujudkan pengguna yang istimewa yang baru. Ingatlah kita tidak mahu campur tangan dengan akaun kakitangan standard pada mesin pada bila-bila. Klik depan dan periksa opsyen acara maju untuk tugas ini.

Hingga akhir textbox jangka menambah rentetan kami 'startvm GridMachine' dan memastikan jangka bahawa hanya apabila log masuk di kiri unticked. Lawati tugas jadual akan datang dan menukar jadual drop down pilihan 'apabila siap sedia', memilih jumlah masa yang anda ingin mesin untuk menjadi terbiar sebelum bergerak ke tab seterusnya.

Akhirnya untick pilihan yang menyatakan menghentikan tugas jika ia telah berjalan jumlah X masa, tetapi tandakan pilihan untuk menghentikan tugas jika mesin tidak lagi terbiar.

jadual

Itu sahaja maka bagi persediaan tuan rumah tingkap!

Ringkasan

Pada bahagian ini, kami telah menetapkan mesin maya untuk bertindak sebagai seorang pekerja, serta cara yang kita panggil dan melaksanakan skrip pemprosesan tugas kami (untuk diri saya skrip PHP). Dari sini kita melihat bagaimana untuk menubuhkan salinan kami tingkap untuk memulakan mesin maya dalam mod berkepala apabila komputer menjadi terbiar, dan menyelamatkan keadaan apabila pengguna disambung semula penggunaan mesin. Semoga pada ketika ini anda melihat bagaimana mudah ia adalah untuk menubuhkan satu sistem sedemikian dan gatal-gatal untuk mendapatkan beberapa eksperimen akan diri anda!

Masa yang akan datang

Dalam Bahagian 4, kita akan melihat menggunakan alat-alat untuk memastikan bahawa anda menjalankan versi terbaru dari sumber-sumber kod dan data supaya mendapat keputusan sentiasa-to-date dengan maklumat perniagaan yang terkini dan logik.

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 2

Oleh , Jumaat 4 Disember 2009 11:23

Pengenalan

Saya bekerja di sebuah syarikat di mana kita menjalankan banyak kerja kelompok pemprosesan berjuta-juta rekod data setiap hari dan saya telah memikirkan tentang semua mesin yang duduk di sekitar setiap hari dan setiap melakukan apa-apa untuk beberapa jam baru-baru ini. Bukankah lebih baik jika kita boleh menggunakan mesin tersebut untuk mengukuhkan kuasa pemprosesan sistem kami? Dalam set rencana-rencana ini, saya akan melihat manfaat yang berpotensi menggajikan pejabat grid yang menggunakan persekitaran virtualised.

Dalam Bahagian 1, saya memberi gambaran keseluruhan sistem dan teknologi yang saya akan gunakan serta membincangkan beberapa potensi sebab-sebab mengapa anda mahu untuk mewujudkan grid pejabat.

Kawalan kerja

Jika anda akan perlu menjalankan kerja maka anda akan memerlukan beberapa cara untuk menguruskan mereka. Keperluan sistem kawalan kerja anda pada pelayan kerja anda akan benar-benar difikirkan dengan baik sebelum cuba untuk menjalankan grid pejabat. Jadi pertamanya, apakah tugas untuk sistem kawalan kerja:

  • Membiayai aktiviti pekerjaan atas permintaan daripada pekerja
  • Memberitahu pekerja apa jenis daripada pekerjaan untuk menjalankan
  • Trek pekerjaan
  • Pastikan yang pekerjaan hanya dijalankan sekali
  • Menyediakan data pekerjaan kepada pekerja-pekerja, atau sekurang-kurangnya memberitahu mereka di mana untuk mendapatkan

Sistem ini juga perlu untuk menjadi extensible, satu penyelesaian yang bekerja buat masa ini dalam kes satu boleh dilanjutkan untuk menjalankan beberapa jenis pekerjaan sebagai perniagaan melihat dalam penyelesaian grid bernilai. Sebagai contoh, pekerjaan boleh mendapat keutamaan lebih daripada satu jenis kerja mungkin wujud (iaitu beberapa asas kod), akhirnya anda mungkin menjalankan beberapa mesin pekerja berbeza yang dioptimumkan untuk setiap jenis pekerjaan (walaupun yang tidak bergerak jauh daripada pekerja 'generik 'idea). Sentiasa cuba untuk berfikir tentang masa depan apabila membangunkan sistem, visi jangka pendek boleh membawa kepada kekecewaan jangka panjang dan peningkatan masa pembangunan.

Pelayan kerja

Kami akan memerlukan tempat untuk mengawal kerja kita, ini perlu menjadi satu-satunya sistem dalam grid anda yang mempunyai sumber tetap pencari, adalah bahawa alamat IP, nama hos, URL (menggunakan dalaman DNS), dll. Ini adalah kerana pekerja perlu tahu di mana untuk mencari pekerjaan, pekerja perlu mencari sistem kerja kawalan (tidak sistem kawalan kerja mencari pekerja).

Pelayan kerja itu sendiri tidak benar-benar mempunyai satu tugas yang rumit (dalam sistem asas bagaimanapun), ia perlu untuk menyimpan senarai pekerjaan, tangan keluar kerja, menerima keputusan, dan seterusnya menyimpannya untuk mendapatkan semula kemudian. Bagaimana bahagian-bahagian ini ('tangan keluar pekerjaan' seperti) ditakrifkan boleh menjadi sangat asas. Kemudian kita boleh melanjutkan sistem termasuk antara muka pentadbiran untuk menambah, mengedit, memadam, menggantung pekerjaan tetapi ini adalah di luar latihan ini.

Terdapat tiada sebab kemudian bahawa pelayan kerja anda tidak boleh menjadi mesin maya berjalan dalam pelayan pemprosesan utama anda dengan syarat ia tidak mengalirkan sumber-sumber yang terlalu banyak daripada ia. Walau bagaimanapun, pelayan pekerjaan tidak memerlukan ketersediaan tinggi, jika ia menjunam pada malam Jumaat anda akan kehilangan hujung minggu seluruh pemprosesan, berpotensi berharga beberapa minggu yang bernilai masa pemprosesan (apabila dibandingkan dengan pelayan pemprosesan utama anda sahaja) . Anda mungkin mahu mempertimbangkan untuk meletakkan pelayan kerja anda terhadap alam sekitar beban yang seimbang bagi ketersediaan tinggi.

Persediaan Asas

Persediaan asas untuk pelayan tugas kami akan terdiri daripada apa yang saya memanggil salah satu pelayan tempang saya (yang Nux Li, m ySql, P HP). Kod yang dijalankan pada pekerja Thea sebenarnya akan bekerja apa pekerjaan yang ia boleh berjalan dengan berinteraksi dengan pangkalan data sistem kawalan kerja. Kemudian pada kita dapat mewujudkan perkhidmatan web dan sebenarnya tangan keluar pekerjaan dan bukannya mempunyai para pekerja melakukan kerja keras sendiri, tetapi sekarang ini kita akan terus menggunakan prinsip KISS (Keep it Simple, Stupid!).

Jadi, mari kita membuat tiga jadual mySQL untuk berurusan dengan pekerjaan. Ini akan menjadi `kerja`, `jobRecords`, dan `jobResults`.

kerja jadual Di sini saya menggunakan SQL Buddy alternatif yang besar sedikit untuk phpMyAdmin hanya kerana lebih mudah dengan memasang CentOS (untuk orang lain melihat: 10 alternatif Great untuk phpMyAdmin )

Jadual ini terdiri daripada 5 bidang yang mudah,

  • id: Unik mengenal pasti pekerjaan
  • name: dapat menjadi rujukan pelanggan, atau mana-mana nombor pengenalan lain
  • Status: Anda perlu tahu di mana kerja adalah pada, contohnya
    • 0: Tidak memulakan
    • 1: meningkat
    • 2: Siap
  • started_by: Siapa yang mula melakukan kerja? Ini tidak sepenuhnya diperlukan tetapi adalah baik untuk mempunyai. Saya hendak mencadangkan pekerja menjejaki oleh alamat IP mereka di rangkaian anda
  • started_at: Bilakah pekerja memulakan kerja? Dengan menjejaki pekerjaan yang belum selesai dalam jumlah X masa kita tahu kita perlu memilih kerja sekali lagi dan mula pemprosesan oleh pekerja lain. Pekerja boleh berhenti pemprosesan / pergi offline untuk apa-apa bilangan sebab, kegagalan kuasa, kemalangan, kehilangan rangkaian, dll.

Ia adalah mudah bagaimana jadual ini boleh dilanjutkan dengan beberapa bidang tambahan bagi membolehkan statistik pengesanan, lajur penamat masa untuk melihat berapa lama Kerja mengambil, kaunter untuk melihat berapa ramai pekerja yang mengambil kerja (jelas ini perlu cenderung untuk 1), keutamaan kerja, senarai yang boleh menyala dan menyala. Dalam senario pekerjaan yang lebih kompleks, ia akan dibuat untuk menentukan berapa banyak memori pekerja akan memerlukan akses kepada (dan oleh itu hanya menggunakan pekerja yang sesuai), atau pun jenis pekerja yang dikehendaki.

Mari menambah beberapa pekerjaan contoh:

contoh kerja

Jadual seterusnya sekali lagi agak ringkas difahami, ini adalah rekod tugas kami. Mereka ada kaitan dengan jadual kerja utama oleh kolum `jobs_id`. Membuat jadual ini amat bergantung kepada data yang anda perlukan untuk membekalkan kepada pekerja-pekerja anda, membolehkan membuat contoh yang sangat mudah di mana kita ada 4 lajur:

  • id: ID rekod
  • nama: nama Orang.
  • address: alamat Orang
  • jobs_id: ID kerja bahawa rekod ini dikaitkan dengan

Jadual ketiga dan terakhir terdiri daripada jadual keputusan, ia mempunyai banyak yang sama mengikut jadual rekod kami, dan dengan penambahan beberapa lajur boleh menjadi sebahagian daripada jadual rekod:

  • job_record_id: Link keputusan untuk jadual kerja
  • result: data hasil

... Dan itulah semua yang anda perlukan untuk mengawal kerja! (Walaupun pada tahap yang sangat asas) Dalam kes saya saya menunjukkan ke meja yang lain di mana data saya untuk proses itu terletak, tetapi ini boleh semudah fail, parameter untuk menjalankan kod simulasi, anda namakan sahaja.

Memilih pekerjaan

Seperti yang dinyatakan sebelum ini, pekerja akan melakukan pengurusan tugas kita untuk kita sekarang, jadi kita perlu benar-benar melakukan mencari pekerjaan yang memerlukan pemprosesan dan mendapatkan maklumat. Bagaimana kita akan melakukan ini? Juga memilih kriteria pemilihan kerja kami dan mencari pekerjaan, dalam SQL saya lakukan yang berikut:

  1. Mengambil mana-mana kerja yang tidak ditandakan sebagai lengkap tetapi dari pekerja kami dan menetapkan semula mereka (menggantikan ME__ __ dengan pengecam, mudah akan menjadi alamat IP):
      UPDATE `kerja` SET `status` = 0 MANA `status` = 1 DAN `started_by` = __ ME__; 
  2. Menggunakan kriteria pemilihan kerja kami, memilih pekerjaan dan memberitahu sistem kawalan bahawa pekerja ini berurusan dengan:
      UPDATE `kerja` SET `status` = 1, `started_by` = __ ME__, `started_at` = SEKARANG () DI MANA `status` = 0 ATAU
     (`Status` = 1 DAN `started_at`> DATE_SUB (SEKARANG (), JARAK X JAM)) PERINTAH OLEH `id` ASC; 

    Oleh pekerjaan capaian anak yang telah tidak dikembalikan keputusan dalam jumlah X masa kita memastikan bahawa semua kerja berjalan sekiranya pekerja terhempas atau akan AWOL.

  3. Seterusnya merebut butiran pekerjaan yang diikuti dengan rekod itu sendiri:
      SELECT * DARIPADA `kerja` MANA `started_by` = __ ME__ HAD 1;
     Pilih * DARIPADA `job_records` MANA `id` = __ JOBID__; 

Setelah selesai kerja, kami memasukkan rekod hasil dan menandakan pekerjaan sebagai lengkap. Ingat sebagai pekerjaan boleh menggantung / disambung semula pada bila-bila masa membolehkan untuk ketegapan beberapa dalam skrip anda. Ia mungkin bahawa tugas menggantung setengah jalan melalui mengemaskini sistem kawalan kerja, jadi memeriksa bilangan rekod dalam pekerjaan dan bilangan keputusan yang disimpan kembali kepada sistem kawalan kerja akan menjadi satu langkah yang bijak.

Di samping itu, sementara ini menunjukkan bagaimana pekerjaan boleh dipilih dan diuruskan dari bingkai SQL-query anda benar-benar perlu pengabstrakan kawalan kerja anda bahawa jika anda memutuskan untuk beralih untuk menggunakan perkhidmatan laman web, sistem berasaskan fail XML , atau mana-mana orang lain bilangan sistem, ia tidak akan menjejaskan kod di atas.

Konfigurasi kerja

Aspek seterusnya adalah untuk saiz pekerjaan dan konfigurasi. Dengan bermain dengan konfigurasi kerja kita boleh menyerang keseimbangan yang terbaik antara kelajuan, replikasi proses, dan kebolehpercayaan. Ambil senario Salim pasangan:

  1. Pekerjaan mengambil 1 setiap hari untuk menjalankan: Ini bermakna bahawa pekerja-pekerja anda memerlukan 15 hari untuk memproses setiap pekerjaan (ingat 10% daripada kuasa untuk 2/3rds masa). Ini adalah jelas tidak tatarajah bijaksana, saiz tugas anda ialah terlalu besar! Ia akan mengambil masa sekurang-kurangnya dua kali ganda masa untuk mendapatkan pekerjaan diproses pekerja awal yang perlu pergi AWOL (masa mengutip bahawa ia telah tidak dikembalikan hasil tambah masa pemprosesan semula). Dalam ideal anda akan mempunyai sekurang-kurangnya satu kerja mudah dibersihkan oleh akhir setiap tempoh terbiar panjang, dengan cara itu anda menyimpan pekerjaan berdetik lebih dan paling teruk kes pekerjaan akan mengambil masa dua hari untuk proses yang pertama harus hilang.
  2. Pekerjaan mengambil 1 minit untuk menjalankan: Ini bermakna bahawa pekerja-pekerja anda mengambil masa kira-kira 15 minit untuk menjalankan setiap pekerjaan. Walaupun ini pada mulanya mungkin kelihatan sesuai, anda boleh mendapat pemprosesan kerja-kerja tambahan pada waktu makan tengahari, rehat kopi, mesyuarat, dll senario ini meletakkan tekanan pada kawasan lain sistem anda dan memperkenalkan masalah sendiri. Sebagai contoh, pertama nisbah tetapan / pemprosesan masa anda akan pergi ke bawah, oleh itu kehilangan kecekapan sistem. Rangkaian anda akan menjadi kerja yang sentiasa streaming maklumat kepada pekerja mengecewakan pelbagai kakitangan yang dong hari mereka untuk kerja hari. Anda juga akan meletakkan ketegangan yang lebih pada pelayan pemprosesan kerja anda kerana ia mempunyai ketepikan banyak dan banyak kepingan kecil kerja secara tetap. Akhir sekali, dalam situasi ini jika pelayan kerja anda terbenam anda akan mewujudkan log belakang besar kerja yang belum siap manakala lebih besar pekerjaan boleh terus memproses tidak sedar bahawa pelayan kerja mengalami masalah.

Dalam realiti tidak akan ada konfigurasi ideal bagi persediaan grid anda, banyak bergantung kepada sumber-sumber yang sedia ada, jenis pekerjaan, keperluan masa yang diambil kerja, keupayaan rangkaian, dan sebagainya. Walau bagaimanapun, beberapa garis panduan akan:

  • Pekerjaan saiz supaya setiap pekerja boleh mendapatkan melalui sekurang-kurangnya pekerjaan 3-4 dalam tempoh 15 jam (yang paling lama tempoh masa mungkin terbiar)
  • Bermain dengan saiz kerja supaya masa persediaan menjadi agak kecil berbanding dengan masa pemprosesan (berkenaan dalam minda titik di atas).
  • Jika kerja tidak lengkap dalam jumlah dua kali ganda masa (mungkin kurang) anda menjangka ia selesai, ia mengandaikan bahawa AWOL hilang dan mula memproses dengan pekerja lain. Ini bermakna anda mungkin perlu menunggu sehingga tiga kali panjang biasa kerja untuk melengkapkan (mungkin lebih panjang jika kerja berikutnya gagal). Anda mungkin mahu mengurangkan masa ini, tetapi berhati-hati untuk tidak mengurangkan terlalu banyak kerana anda mungkin mula menduplikasi tugas pemprosesan secara tetap.
  • Pekerjaan seharusnya bebas daripada keperluan di luar sebanyak mungkin. Pelayan pekerjaan, sebagai contoh, hanya perlu dihubungi pada permulaan dan akhir setiap kerja.
  • Jangan menepukan rangkaian anda, ini akan mempunyai dua kesan negatif, kakitangan siang hari anda akan mendapati menggunakan rangkaian mengecewakan dan masalah boleh dialami dengan sambungan menentukan masa yang sesuai masalah yang hanya akan bertambah buruk sebagai anda skala grid anda.
  • Memastikan kerja boleh dijalankan ke atas pekerja anda. Jika pekerjaan menjadi terlalu memori pekerjaan ruang intensif atau cakera intensif akan bermula paksa dan satu-satunya perkara yang anda akan perasan penurunan dalam bilangan pekerjaan yang diproses dengan tanpa sebab sebenar mengapa.

Mengemukakan Keputusan Ayub

Apabila mengemukakan hasil kerja adalah penting untuk memeriksa bahawa keputusan telah tidak diserahkan oleh pekerja lain, terutamanya jika pekerja semasa telah tidak aktif untuk beberapa waktu.

Apabila keputusan telah diserahkan memastikan bahawa bilangan keputusan sepadan dengan bilangan rekod dalam kerja.

Seperti yang telah dinyatakan sebelum ini, dan tidak boleh lebih menekankan, membina toleransi kesalahan ke dalam mendapatkan semula pekerjaan dan penyerahan keputusan. Pekerja-pekerja boleh (dan besar kemungkinan akan) pergi ke mod menggantung pada kali yang menyusahkan dan ini perlu dipenuhi. Juga sekali lagi abstrak penyerahan keputusan anda akan membantu menampung perubahan masa depan kepada sistem kawalan kerja anda lebih mudah untuk berurusan dengan.

Ringkasan

Dalam section ini kita telah melihat di pelayan kerja kawalan perlu lakukan dan bagaimana untuk mendapatkan satu sistem yang sangat asas ditubuhkan. Kami membincangkan cara untuk mengambil kerja dari sistem kawalan dan cara terbaik untuk mengkonfigurasi pekerjaan untuk mendapatkan yang paling kami sistem grid pejabat anda. Hingga ke akhir, perenggan atau dua mengemukakan keputusan kembali ke pelayan kawalan kerja telah dibentangkan.

  • Pelayan kawalan kerja menguruskan pekerjaan dan memastikan bahawa semua unit kerja telah siap
  • Oleh pengabstrakan kerja anda pilih / keputusan penyerahan kita boleh mengubah teknologi pelayan kawalan tanpa banyak masalah
  • Mengkonfigurasi pekerjaan anda untuk memastikan bahawa mereka berjalan dengan pantas dan cekap tanpa meletakkan terlalu banyak tekanan ke atas infrastruktur rangkaian anda, dan tanpa menduplikasi tugas pemprosesan secara tetap.
  • Pastikan anda membina toleransi kesalahan dan checking kesilapan ke dalam rutin anda, pekerja boleh menggantung dan resume dan yang paling menyusahkan kali. Ingatlah untuk memeriksa jika keputusan telah pun diserahkan oleh pekerja lain.

Masa yang akan datang

Dalam 3 bahagian, kita akan membuat mesin pemprosesan maya kami dan menubuhkan mesin tingkap kami untuk menjadi pekerja yang terbiar masa.

Zend Rangka Kerja: Asas - Kajian

Oleh , Sabtu 28 November 2009 22:42

Majikan saya baru-baru ini dibayar untuk kumpulan kami pemaju untuk mengambil Rangka Kerja Zend: Kursus Asas , di sini saya akan meringkaskan fikiran dan pendapat saya mengenai kursus untuk orang lain. Bagi mereka yang mencari untuk menjimatkan masa, di sini adalah ringkasan saya:

Bagi pemaju yang tidak mempunyai masa untuk melihat Rangka Kerja Zend kursus ini (Zend Rangka Kerja: Asas) menawarkan gambar yang baik secara keseluruhan rangka kerja yang memperkenalkan anda kepada bidang utama dan memberikan maklumat yang cukup untuk meneruskan. Bagi mereka yang telah menghabiskan masa melihat rangka kerja dan telah diikuti satu atau dua tutorial kursus ini tidak menawarkan lebih daripada sekadar.

Latar belakang

Saya telah pemaju PHP untuk kira-kira 5-6 tahun, dan telah mula bekerja dengan Rangka Kerja Zend berasaskan komponen dalam tempoh 6 bulan yang lalu. Saya telah dibangunkan dan / atau pemaju pada beberapa Rangka Kerja Zend kecil MVC sites. biarlah saya berterus terang, saya tidak mempunyai banyak pendedahan kepada rangka kerja lain dari satu titik pengekodan pandangan tetapi telah menghabiskan masa beberapa jam menyelidik laman projek dan menilai them. rangka kerja dan masyarakat sekeliling Zend Rangka Kerja ianya agak menarik dan seolah-olah menjadi kemungkinan besar di mana ia akan.

Mengenai Kursus

Kursus itu diserahkan lebih 9 dua jam webex sesi (dengan waktu rehat selama 10 minit di tengah-tengah). Masa yang dibelanjakan akan melalui satu set slaid yang disediakan oleh Zend dengan perbincangan pada bila-bila masa. Anda boleh menggunakan mikrofon untuk bercakap dengan pengajar, tetapi untuk berterus-terang, saya tidak melihat sesiapa menggunakan apa-apa lebih daripada tetingkap bual. Di samping itu mesin VMWARE Ubuntu disediakan yang mempunyai kod contoh dan projek yang ditubuhkan versi percubaan Zend Studio. Rundingan pemimpin kursus untuk tetamu yang hadir sama ada lebih satu penyelesaian VoIP bersepadu, atau anda boleh mendail menggunakan salah satu daripada dail banyak di seluruh dunia di nombor.

Sepanjang bahan terdiri daripada gambaran keseluruhan ringkas Rangka Kerja dan corak MVC sebelum menuju ke aplikasi buku pelawat sampel. The discussion demonstrated bootstrapping, Zend_Application, Db Tables, Database access, Forms, Filtering, ACL, Validating, etc, etc. Basically covering all the topics you'd require to get a basic site up an running all the time giving you the tools to go and get more advanced in the framework (although this did amount to 'See the website' much of the time).

Time is given to code up some examples, and to develop the 'guestbook' and simple 'wiki' application. Personally I felt that providing the code or each app and then asking us to develop what was essentially a copy alongside didn't really provide a good learning experience. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. The course leader was friendly, approachable (email addresses were shared for questions), and whilst his presentation from the slides was a bit shaky seemed fully competent in the framework. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

In some ways I found the course a waste of time, in others it was very handy. Hopefully I'll get my reasons across clearly, and maybe provide some food for thought or useful feedback (knowing me this is unlikely!).

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. Other members of the development team that haven't spent the time looking into the framework finished each session with enthusiasm and asked questions which was really nice to see.

Semuanya tidak hilang, ia adalah baik untuk menghabiskan masa mengesahkan butir-butir asas rangka kerja dan mendapatkan untuk bertanya beberapa soalan di kawasan di mana saya tidak 100%. Ia adalah juga waktu itu, saya dapat duduk setiap hari dan berfikir tentang pengekodan menggunakan rangka kerja dan projek-projek masa depan, sesuatu yang saya tidak akan mampu untuk berbuat sebaliknya (anda boleh bayangkan syarikat anda bersetuju itu? :)). Akhir sekali anda juga mendapat suatu perakuan yang bagus dari Zend untuk mengatakan bahawa anda menghadiri kursus (walaupun melalui e-mel).

Pensijilan zend Rangka Kerja

Ini adalah satu soalan yang disimpan datang ke fikiran semasa, ia akan menyediakan saya untuk pensijilan? Yang cepat, mudah Tanpa membanggakan. Pengajar kursus adalah cukup jelas tentang dengan nasihat tambahan itu bagi pemerakuan anda benar-benar perlu menggunakan rangka kerja pada hari ke hari dan merasa sangat selesa dan yakin dalam penggunaan dan metodologi.

Ringkasan

Memandangkan semua yang saya tulis di atas, saya akan meringkaskan semua dalam dua peluru mata mudah:

  • Baru kepada Rangka Kerja Zend: Kursus ini tidak tepat dengan apa yang anda harapkan, ia memberikan pengenalan baik kepada rangka kerja dan asas yang baik mengenai asas-asas dari mana anda boleh membina. Kursus ini seolah-olah untuk menjana minat dan keghairahan untuk rangka kerja di kalangan pemaju.
  • Digunakan Rangka Kerja Zend: Walaupun ia adalah baik untuk meningkatkan beberapa asas sangat saya rasa masa, usaha, dan dana untuk mengambil kursus yang boleh bagi lebih baik digunakan di tempat lain. Ia akan menjadi baik see Zend mewujudkan tahap baru yang lebih tinggi kursus untuk mengambil pemaju untuk tahap yang lebih tinggi - sekurang-kurangnya kepada standard pensijilan dan seterusnya Untuk itu, saya akan mendaftar segera.

Nama Direktori UK dan Facebook Permohonan

Oleh , Jumaat 10 April 2009 9:33 am

One of the fun things I've been involved in whilst working for Tracesmart is the names directory . Basically we took our huge information database and pulled out a big pile of stats about various names.

The process is all one big SEO effort in order to draw more traffic to the site, but it also provides some interesting information and name statistics.

Here's an example for my name Lloyd Watkin , or I suppose more correctly Steven Watkin . Take a minute to look up your name on the Tracesmart site, might be interesting ;)

We've also got names statistics data on the names directory page which tells you what names have been searched and how recently. Its quite interesting to see famous people's names fly up the stats when they appear in the news. A recent example is that of Liam Neeson who's wife died from a skiing accident recently, although obviously people aren't quite right on the spelling (hence the huge numbers of hits on this name) — Liam Nilson .

Facebook Application

Once the names directory was created we set about creating a facebook application which we duely named ' My Name '. The facebook application is an extension of the names directory and provides some additional statistics. In order to add the names directory to your facebook account please visit:

http://apps.facebook.com/my-name/













Panorama Theme by Themocracy

8 visitors online now
6 guests, 2 bots, 0 members
Max visitors today: 9 at 01:19 am UTC
This month: 40 at 23-05-2012 03:33 am UTC
This year: 69 at 27-02-2012 09:56 am UTC
All time: 130 at 28-03-2011 10:40 pm UTC