Posts tagged: pangkalan data

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Part 4

Oleh , Jumaat 4 Disember 2009 11:59

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 3 bahagian kita menciptakan mesin pemprosesan maya kami dan menubuhkan tingkap mesin untuk menjadi pekerja yang terbiar masa.

Menjalankan code terbaru

Tidak dapat dielakkan selepas mencipta logik perniagaan pekerja anda akan berubah, pepijat akan didapati, kod lebih cepat lebih cekap akan dihasilkan itu meninggalkan pekerja anda duduk di sekitar memproses data menggunakan kod berbau lama . Bagaimana pula dapat kita memastikan bahawa kita selalu menggunakan versi yang terbaru dan terhebat skrip pemprosesan kami?

Terdapat beberapa cara yang sangat mudah mudah yang boleh kita lakukan ini, muslihat, bagaimanapun, adalah untuk mengurangkan kuasa pemprosesan dan trafik rangkaian dalam mencapai matlamat ini. Mari kita bermula dengan penyelesaian yang paling mudah dan meningkatkan secara perlahan-lahan sepanjang beberapa lelaran.

Kaedah pertama akan hanya menyambung kepada pelayan kawalan tugas kami (melalui samba, FTP, atau yang serupa) dan tarik ke bawah versi terbaru kod. Tidak begitu cekap, tetapi ia akan melakukan pekerjaan itu. Mari kita memperbaiki bahawa agak, bagaimana pula mewujudkan skrip rsync dan menggunakan bahawa setiap kali, bukan? Alternatif bagaimana meletakkan skrip pemprosesan terbaru kami ke subversif melihat kod mulanya dan kemudian hanya mengemaskini kod kami setiap melarikan ( svn update )?

Akhirnya kita boleh berakhir dengan skrip Bash (dipanggil oleh cron setiap 10 minit) yang kelihatan seperti mudah kerana ini:

  #! / 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"
     cd / path / to / bekerja / salinan
     svn update
     php yourJobProcessingScript.php
 Wayar 

Sekarang kita boleh yakin bahawa dengan jangka setiap kita pasti menjalankan code terbaru. Kami memastikan ini dengan mengemas kini pangkalan kod kami setiap kali dan setiap kita melaksanakan jangka dan mengurangkan trafik rangkaian dengan hanya memindahkan perbezaan fail di seluruh rangkaian kami.

Dalam persediaan demonstrasi saya, saya berjaya melakukannya seperti di atas. Subversif telah dipasang pada pelayan pemprosesan tugas saya dan saya hanya menarik code terbaru dari cawangan 'pekerja' menggunakan 'svn update'. Saya juga menambah tag nombor versi untuk skrip pemprosesan saya yang telah kembali ke pangkalan data sebagai sebahagian pulangan keputusan. Dengan cara ini saya dapat melihat bahawa kod saya sedang dikemaskini setiap kali saya disalin batang saya ke dalam iaitu cawangan pekerja yang saya pasti menjalankan pemprosesan skrip terkini.

Menggunakan data terkini

Jika pemprosesan kerja anda menggunakan sumber data, maka pada satu masa nanti ini akan dikemas kini terlalu. Melainkan anda menyeru sumber data anda atas dasar yang sangat jarang berlaku, anda akan membanjiri rangkaian anda dengan trafik dengan seberapa segera sebagai pekerja anda mula berlari membawa semua terhenti. Untuk penyelesaian saya, saya memutuskan bahawa saya ingin untuk menggerakkan sumber data saya main dengan VMS saya.

Pegang anda kuda di sana! Bagaimana jika sumber data saya adalah BESAR? Baik ini benar-benar adalah satu kes berapa banyak data yang kita bercakap? Ia boleh menjadi lebih berkesan kos untuk memasang tambahan cakera keras yang lebih besar ke dalam setiap mesin daripada membeli pelayan pemprosesan tambahan. Ini adalah persoalan bajet dan perniagaan untuk memutuskan. Ia mungkin bahawa sumber data anda adalah begitu besar sehingga hanya unfeasible untuk memastikan bahawa jumlah data dalam mesin pekerja anda. Dalam hal yang demikian apakah yang akan anda lakukan? Juga kita boleh melihat memanggil pelayan data tempatan, tetapi ini mungkin menyebabkan isu-isu dengan rangkaian. Dalam kes ini, sistem grid seperti ini boleh menjadi tidak realistik untuk termasuk dalam persekitaran pejabat anda. Ia juga mungkin yang anda boleh melihat ke dalam strategi alternatif, contohnya hanya memanggil pekerja anda 20:00-06:00 setiap malam dan / atau pendikitan permintaan sumber data.

Bergerak atas membolehkan berkata jumlah sumber data kami untuk 100GB data. Baik ya yang agak sedikit data untuk bergerak di seluruh rangkaian pada kemas kini. Bagaimana kita akan memastikan bahawa kita mempunyai salinan terbaru data dalam kes ini? Rsync adalah satu kemungkinan, tetapi secara peribadi saya berfikir dengan menjalankan sumber data terkini anda pada pelayan pemprosesan kerja anda dan menetapkan ini sebagai induk dalam replikasi (dengan log nice bin panjang) mungkin menjadi cara untuk pergi:

replikasi Dengan setiap pekerja anda sebagai hamba kepada pelayan kawalan update pekerjaan kepada sumber data anda akan dinikmati oleh segenap lapisan baik untuk pekerja anda tanpa peningkatan besar dalam aktiviti rangkaian (yang melainkan anda melakukan kemas kini data yang besar dan semua pekerja anda menendang dalam sekali gus). Ini mempunyai kelebihan lebih rsync yang anda tidak akan mendapat jeda lama sebelum setiap kerja; sebagai kemas kini pangkalan data mysql daemon pada pekerja anda akan sentiasa mengemaskini data manakala pemprosesan berterusan.

Ini adalah bagaimana saya menetapkan pelayan demonstrasi saya. Untuk menubuhkan replikasi saya mengikuti panduan di laman mySQL ( tetapan sehingga replikasi ) dan dalam masa 20 minit, saya mempunyai pekerja awal daripada saya mengulangi dataset kawalan kerja pelayan. Bagi setiap pekerja tambahan tetapan replikasi dan proses bekerja setiap kali apabila VM tersebut telah disalin.

Ringkasan

Dalam seksyen ini rencana kita telah melihat bagaimana mudah dan tidak menyakitkan ia adalah untuk menyimpan kod pemprosesan anda sehingga kini oleh using rsync atau subverion (SVN) untuk melakukan kerja dan mengurangkan trafik rangkaian pada time. yang sama Kami juga membincangkan bagaimana untuk menyimpan maklumat sumber data anda up-to-dengan membenarkan ia untuk dinikmati oleh segenap lapisan kepada setiap pekerja anda. Oleh itu, kita kawasan memastikan bahawa kita menjaga dengan logik perniagaan dan maklumat dalam sistem grid pejabat kami. Jelas akan ada alternatif yang tidak terkira banyaknya untuk melaksanakan tugas-tugas ini, tetapi di sini adalah dua contoh mudah untuk menunjukkan betapa mudahnya penyelesaian diperolehi.

Masa yang akan datang

Di bahagian akhir siri ini, yang dinamakan Bahagian 5 , kami akan membincangkan menggerakkan sistem ini untuk Saya akan meringkaskan apa yang telah dipelajari dan apa yang saya berjaya untuk mencipta.

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 1

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.

Sebagai seorang PHP pemaju, saya akan menggunakan alat-alat yang saya gunakan setiap hari iaitu, Linux, mySQL , PHP, VirtualBox dan subversif (SVN). Walau bagaimanapun, saya berharap panduan ini akan menyesuaikan diri dengan bahasa teknologi dan lain-lain juga.

Penyelesaian yang saya berikan akan sangat longgar berdasarkan jenis pemprosesan kami perlu untuk mencapai tetapi ini mungkin tidak benar keseluruhan artikel kerana saya akan mengubah keadaan kesederhanaan, atau untuk menghasilkan senario penggunaan yang lebih menarik.

Persekitaran virtualised akan berjalan di mesin tingkap kerana ini adalah apa yang majoriti pejabat berjalan. Pemprosesan bahawa mesin pejabat tidak seharusnya mengganggu kakitangan menggunakan mereka mesin, sepatutnya tidak memerlukan penyelenggaraan mesin, dan mudah deployable mesin baru kerana ia menjadi tersedia. Juga, mesin maya baru tidak perlu menghendaki mana-mana konfigurasi tambahan kerana ini banyak mengurangkan keupayaannya untuk diperluas dan mudah di mana sistem grid boleh dilanjutkan.

Mengapa menempatkan Pejabat Pengkomputeran Grid?

Pertama anda mungkin terfikir, mengapa tidak hanya menggunakan sumber cloud computing seperti platform Amazon EC2 ? Baik alasannya adalah beberapa contohnya:

  • Anda tidak akan mengamanahkan data tertentu kepada persekitaran perkomputeran awan
  • Anda tidak boleh meletakkan data tertentu ke dalam persekitaran perkomputeran awan atas sebab-sebab undang-undang (meninggalkan data contohnya negara), berpotensi untuk sebab-sebab undang-undang, contohnya NHS rekod.
  • Yang anda hendak simpan unit pemprosesan anda menutup dan mempunyai kawalan penuh ke atas perkakasan terlalu
  • Anda tidak mempunyai dana projek untuk menjalankan kejadian awan
  • Pejabat anda tidak mempunyai sambungan ke internet dan oleh itu tidak mungkin untuk menggunakan sumber awan
  • Anda tidak suka hujan, awan mencadangkan hujan, oleh itu anda menyimpan jauh

Saya pasti senarai itu boleh terus, tetapi saya fikir itu sudah cukup buat masa sekarang.

Kelebihan Grid Computing Pejabat

Baik, mari kita melakukan beberapa matematik (dan dalam gaya fizik benar membolehkan membuat beberapa andaian yang menyapu). Bayangkan anda mempunyai pelayan pemprosesan besar berdaging berlari 100 pekerjaan setiap hari. Di pejabat anda, anda mempunyai 50 mesin yang terbiar 16 jam sehari, setiap mesin ini adalah 10% berkuasa sebagai pelayan pemprosesan berdaging anda. (Semua keputusan di sini bulat untuk memandang rendah peningkatan prestasi).

Jadi, 1 mesin * kuasa 10% * 2/3 masa = 0,067 iaitu 1 desktop pemprosesan dalam masa terbiar boleh memproses 6 pekerjaan penuh setiap hari.

Jika anda sekarang penskalaan ini yang mengambil masa 15 desktop terbiar untuk memproses seberapa banyak pekerjaan sehari sebagai pelayan pemprosesan utama anda.

Demikian di pejabat berpura-pura kami sebanyak 50 mesin, kita boleh meningkatkan kuasa pemprosesan kami daripada 1 Pelayan sehingga 4 pemprosesan pelayan penuh, atau kita boleh memproses 400 pekerjaan setiap hari dan bukannya 100.

Notis, tidak bagi pelaburan dalam perkakasan baru syarikat anda baru sahaja meningkatkan kapasiti pemprosesan kelompok 4 kali! Berpotensi anda akan meningkatkan penggunaan kuasa anda tetapi kebanyakan dari persekitaran pejabat saya pernah ke mesin umumnya ditinggalkan pada semalaman pula, supaya anda dapat melihat ini sebagai inisiatif hijau.

Kelebihan lain juga bermaksud bahawa pelaburan dalam baru (atau dikemaskini) pelayan pemprosesan boleh ditangguhkan jika mesin pejabat anda adalah mencukupi dan bahawa anda meningkatkan kuasa mesin pejabat anda grid pejabat anda menjadi lebih kuat secara automatik.

Teknologi

Apa yang anda perlukan? (Atau lebih tepat lagi apakah yang dilakukan oleh saya menggunakan):

  • Mesin pejabat terbiar (dalam kes saya XP komputer riba ganti lama tingkap)
  • VirtualBox (atau perisian maya klien yang lain)
  • Sebuah mesin maya dengan PHP, mySQL running menjalankan cut turun OS, saya memanggil pelayan tempang ini saya :)
  • Pekerjaan untuk menjalankan
  • Pelayan kerja (boleh menjadi satu lagi mesin maya tempat)

Pekerjaan tipikal

Jenis-jenis pekerjaan yang bahawa sistem ini direka untuk dilaksanakan adalah seperti berikut:

  • Sistem menerima senarai data yang kita perlu untuk memadankan dan mengembalikan hasil
  • Padanan melibatkan memeriksa / mencari sumber data beberapa (agak statik)
  • Keputusan daripada sumber-sumber data mungkin memerlukan pengesahan lanjut, penggabungan, memeriksa sumber data tambahan sebagai respons kepada keputusan
  • Data dikembalikan sepadan dengan rekod, disahkan sepenuhnya dan diproses
  • Setiap rekod dalam pekerjaan adalah bebas daripada yang lain

Jadi pada asasnya kami sedang mencari pada menjalankan pekerjaan yang memerlukan campuran lookup pangkalan data dan beberapa crunching nombor, satu senario yang agak tipikal dalam persekitaran perniagaan.

Penyelesaian grid tidak hanya berfaedah untuk memproses kerja jenis ini. Pada asasnya, mana-mana proses yang boleh dibahagikan kepada unit-unit yang bebas boleh dijalankan secara selari. Lihat wikipedia ini untuk contoh dan maklumat lanjut: Pengkomputeran Grid , tetapi beberapa contoh terkenal adalah Halkum @ Home dan BIONC . Terdapat rangka kerja untuk menjalankan pengkomputeran grid, dan ini berbaloi mengkaji.

Apa yang kita akan capai?

Menjelang akhir artikel ini, saya berharap dapat menunjukkan bahawa penggunaan grid pejabat tidak perlu memakan sangat mahal atau masa. Saya akan membincangkan:

  • Menubuhkan sistem kawalan kerja, konfigurasi kerja
  • Mewujudkan sebuah mesin pemprosesan yang sesuai maya
  • Bagaimana untuk membuat sistem pada mesin tingkap
  • Memastikan anda menggunakan kod dan data terkini
  • Kerahan dan penandaarasan
  • Memandang ke hadapan

Saya akan menjadi bangunan (ok saya dibina, kemudian menulis ini) permohonan contoh untuk menguji konsep pada mesin tempatan yang menggunakan windows XP dan 'GridMachine' mesin maya saya. Pelayan kawalan tugas saya akan menjadi mesin utama saya yang berjalan Fedora 11 .

Ini tidak bertujuan untuk menunjukkan sistem yang sepenuhnya bekerja, bermakna lebih satu demonstrasi dan membincangkan menunjukkan bahawa perkara-perkara ini boleh dicapai dalam ruang masa yang agak singkat dan pada kos yang sedikit. Sila berasa bebas untuk menghantar saya untuk sebarang komen, pembetulan atau penambahbaikan dan saya akan melakukan yang terbaik untuk menyimpan artikel ini dikemas kini untuk menyamai.

Masa yang akan datang

Dalam bahagian 2 saya akan bermula dengan melihat pada sistem kawalan kerja, dan melihat kepada bagaimana kerja sepatutnya dikonfigurasi untuk mencapai jumlah terbesar pemprosesan di samping memastikan bahawa setiap pekerjaan diproses tanpa gagal.

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.

Pejabat Pengkomputeran Grid menggunakan persekitaran Maya - Bahagian 5

Oleh , Jumaat 4 Disember 2009 11:03

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 4, kita melihat menggunakan alat-alat untuk memastikan bahawa kita sedang menjalankan versi terbaru dari sumber-sumber kod dan data supaya mendapat keputusan sentiasa-to-date dengan maklumat perniagaan yang terkini dan logik.

Pra-Deployment

Sebelum menggerakkan sistem grid anda jika ada satu perkara yang anda lakukan dan satu perkara sahaja ia penanda aras sistem semasa anda! Tidak kira apa yang anda beritahu rakan-rakan tentang berapa banyak kerja tambahan sistem anda akan lakukan melainkan anda mempunyai nombor ke belakang ini sehingga jaminan anda adalah apa-apa. Jadi,

  • berapa banyak rekod anda boleh memproses kini? Sehari? Sejam?
  • Berapa lama ia biasanya mengambil masa untuk pulih pekerjaan?
  • Berapa banyak lebih banyak kapasiti yang anda ada?

Ada juga soalan-soalan tambahan:

  • Jika pelayan pemprosesan anda (atau satu pelayan pemprosesan anda) terbenam bagaimana ini akan memberi kesan kepada keupayaan anda, anda akan lumpuh?
  • Apa kelebihan yang anda berharap / menjangka untuk mendapatkan daripada sistem grid?
  • Adakah mesin pejabat anda mampu menjalankan kerja-kerja?
  • Adakah anda (atau anda kerja boleh ditukar) untuk wrok dalam gaya ini berjalan?

Titik utama yang terakhir adalah untuk mengambil masa anda atas apa-apa perubahan besar seperti ini. Mengemaskini kod pemprosesan anda untuk bekerja menggunakan metodologi baru, penanda aras sekali lagi. Kemungkinan menubuhkan pelayan pemprosesan untuk menjalankan mesin maya, selepas semua pelayan pemprosesan anda hanya akan menjadi pekerja lain (hanya satu yang sangat kuat secara relatif). Biarkan proses baru untuk menyelesaikan.

Kerahan

Cadangan saya akan pop ke dalam hujung minggu pejabat melaksanakan semua pemasangan dan persediaan. Adakah ini sebelum bercuti dua minggu dan meninggalkan begitu miskin yang lain bab untuk menangani kesan ... mungkin tidak ...

Kerahan untuk sistem seperti ini perlu menjadi perlahan. Walaupun ia agak mudah untuk menubuhkan sistem ini akan menjejaskan keseluruhan infrastruktur pejabat anda (digital). Pertama, melancarkan beberapa mesin pada satu-satu masa, memantau trafik rangkaian, bagaimana tuan rumah pekerja melakukan atas dasar sehari-hari. Anda mungkin perlu mengubah konfigurasi tugas anda sebagai tindak balas kepada penemuan anda.

Sekali sistem telah diselesaikan dengan mesin beberapa (katakanlah 10% daripada semua mesin pejabat, iaitu 5) menyimpan memantau trafik rangkaian dan mesin tuan rumah performance. penanda aras Seterusnya lagi, kini anda perlu memproses 33% lebih banyak peluang pekerjaan daripada tanda aras pertama anda. Semak ini adalah demikian, atau bahawa anda sekurang-kurangnya dalam Ballpark ini. Jika tidak, menyiasat apa yang sedang berlaku sebelum berpindah. Mengulangi kitaran ini sehingga anda gembira telah semua mesin pejabat berjalan tanpa membunuh prestasi mesin individu atau pengisaran rangkaian anda untuk terhenti.

Pada setiap masa terus penandaarasan, walaupun selepas semua pergerakan dibuat. Semak cara update kod baru mempengaruhi kelajuan sistem anda, periksa semua pekerja melaporkan dan pemprosesan pekerjaan. Perlahan-lahan (amat perlahan) kenaikan konfigurasi kerja anda untuk mendapatkan yang terbaik dari pekerja dan rangkaian anda.

Berhenti!

Bagaimana jika anda mahu untuk menghentikan pekerja anda daripada berjalan pada masa tertentu? Mereka semua di luar sana berjalan, penjanaan semula, dan cuba yang terbaik untuk memproses data seperti serangga lapar. Jawapannya mungkin kelihatan jelas tetapi bernilai yang menambah hanya dalam kes terlepas pandang yang. Mengedit skrip pemprosesan anda hanya dengan keluar (0) atau mati () atau beberapa kenyataan lain untuk membunuh tugas pemprosesan anda. Satu sebab penting mengapa kita sentiasa cuba untuk mengemaskini skrip pemprosesan terkini sebelum jangka apa-apa!

Sistem demonstrasi

Dalam usaha untuk menulis ini set artikel pendek saya mencipta grid yang sangat kecil untuk menunjukkan teknologi dan metodologi. Saya membaca banyak artikel, tutorial, dan menggunakan pelbagai alat untuk persediaan dan memantau apa yang berlaku. Tidak sekali-telah saya padam dan tepu seluruh pejabat dengan lalu lintas dan juga telah saya mempunyai akses kepada kakitangan PC biasa untuk melihat bagaimana prestasi tuan rumah telah terjejas.

Sistem demonstrasi saya adalah sangat merendah diri sekali. Saya menggunakan desktop tetap saya yang ditubuhkan sebagai pelayan kawalan kerja. Mengenai perkara ini, saya telah memasang mySQL server dipasang ditubuhkan sebagai induk dalam replikasi, PHP , Â dan SVN yang dihubungkan melalui apache (untuk akses melalui VM pekerja).

Saya kemudian mencipta mesin CentOS pekerja pada VirtualBox pada 6 tahun XP komputer riba tingkap. Saya setup dijadualkan tugas-tugas sebagaimana yang dinyatakan selepas menyalin VM ke atas mesin dan biarkan ia pergi.

Mesin maya telah ditubuhkan dengan PHP, perbuatan subversif, dan mySQL. Saya memeriksa sebuah cawangan yang dinamakan 'pekerja' dari repository pelayan saya kawalan kerja dan memastikan ia boleh dikemaskini menggunakan 'svn update'. Seterusnya saya setup mySQL sebagai hamba dan memeriksa bahawa data telah mereplikakan dari mySQL pada pelayan kawalan kerja VM pekerja. Setelah semua ini, saya setup skrip Bash dan tugas cron.

Skrip pemprosesan saya pada dasarnya telah di sepanjang garis ini (barangan sangat mudah):

  • Baca dalam bidang nama
  • Dikira bilangan nama-nama yang sama dalam jadual dari sumber data yang diadakan pada VM
  • Dikira bilangan nama-nama seperti nama di atas tetapi membelah oleh ruang (iaitu nama kecil, pertengahan, nama keluarga)
  • Berulang-ulang proses ini 1,000 kali

Setiap kerja mengambil masa kira-kira 20 minit untuk berjalan. Pada satu ketika saya membuka beberapa salinan VM pekerja pada laptop tingkap dan melihat pekerjaan diperiksa oleh setiap alamat IP pekerja. Pada titik ini, saya juga mengesahkan bahawa replikasi secara automatik semula.

Meninggalkan komputer riba untuk menganggur menyebabkan seorang pekerja mula untuk memproses kerja dari pelayan kawalan kerja. Apabila meneruskan penggunaan komputer riba, terdapat sedikit kelewatan kira-kira 30-60 saat, ini adalah jumlah yang saksama masa dan kakitangan perlu dibuat sedar bahawa mesin mereka boleh berhenti seketika untuk seketika apabila pulang ke mesin. Baru mesin mungkin tidak mempunyai jeda yang panjang ini. Manfaat daripada jumlah pemprosesan yang dilakukan oleh mesin tersebut sepanjang tempoh terbiar akan lebih yang melebihi kakitangan perlu menunggu satu tempoh yang singkat (katakan 1 minit) untuk tiba di mesin mereka pagi (saya sering menunggu lebih lama bahawa ini untuk Defender Windows kini mengambil tempat) dengan syarat mereka sedar tentang perkara ini (masa yang berguna untuk merebut kopi pagi!).

Secara keseluruhan saya merasa yakin bahawa saya telah menunjukkan teknologi yang boleh digunakan untuk mewujudkan sistem seperti itu. Saya telah menunjukkan bahawa sistem ini berfungsi pada skala (sangat) kecil dan dengan lagi eksperimen dapat dipertingkatkan menggunakan sumber mesin pejabat. Jika saya tidak dapat berbuat demikian, saya akan menjadi sangat berminat untuk mengetahui / melihat apabila orang lain tidak.

Kesimpulan / Penilaian

Langkah yang jelas seterusnya adalah untuk mendapatkan contoh dunia sebenar dan mula untuk menggerakkan satu sistem seperti ini dalam persekitaran pejabat dan lihat apa yang berlaku. Meminta perniagaan untuk melakukan ini tanpa syarikat jejak panas membakar untuk membuktikan teknologi dan keberkesanan mungkin agak sukar. Grid / pengkomputeran teragih adalah sangat popular adalah beberapa bulatan dan mempunyai beberapa aplikasi besar (BIONC, Halkum @ Home, Melipat @ Home, dll). Saya tidak, bagaimanapun, cari skala yang lebih kecil dan sistem yang mudah seperti ini dalam pencarian saya yang boleh dilaksanakan dalam persekitaran pejabat.

Saya telah mencipta satu sistem yang pada asasnya bebas menggunakan sumber perisian kebanyakannya terbuka dan alatan yang disediakan di hampir mana-mana pejabat. Teknologi yang pada asasnya menunjukkan dan menunjukkan untuk melaksanakan dan bekerja seperti yang diharapkan. Semoga saya mempunyai menunjukkan bahawa dengan kerja-kerja yang tidak banyak dan dengan persediaan yang sangat mudah, anda dapat digunakan oleh sistem pengkomputeran grid pejabat yang berkuasa, murah, Â dan berskala pada masa yang sama.

Apabila sistem dan berlari terdapat hampir tiada akhir kepada jumlah penyesuaian dan penambahbaikan yang anda boleh membuat. Untuk statistik contoh / penandaarasan boleh ditambah dengan mudah menunjukkan sistem bernilai setiap hari. Mesin baru boleh ditambah dengan cepat dan mudah seperti dan apabila mereka tiba dengan peningkatan kepada perkakasan sedia ada mengukuhkan kuasa pemprosesan anda.

Saya berharap anda seronok membaca siri artikel ini dan yang memberikan makanan untuk pemikiran pada menjalankan sistem grid pejabat. Penyelesaian yang dibentangkan di sini tidak semestinya bekerja dalam semua keadaan tetapi perlu disesuaikan untuk membolehkan anda untuk mendapatkan pemprosesan data anda dilakukan dengan menggunakan penyelesaian anda sendiri.

Sila berasa bebas untuk menghantar saya untuk sebarang komen, pembetulan atau penambahbaikan dan saya akan melakukan yang terbaik untuk menyimpan artikel ini dikemas kini untuk menyamai.

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. Perbincangan menunjukkan pengikatan but, Zend_Application, Jadual DB, akses Pangkalan Data, Borang, Penapisan, ACL, Pengesahan, dll, dll. Pada asasnya meliputi semua topik yang anda memerlukan untuk mendapatkan tapak asas sehingga 1 berjalan sepanjang masa memberi anda alat untuk pergi dan mendapatkan lebih maju dalam rangka kerja (walaupun ini tidak terjumlah kepada 'Lihat laman web' banyak masa).

Masa diberikan kepada kod beberapa contoh, dan untuk membangunkan 'guestbook' dan permohonan mudah 'wiki'. Secara peribadi saya merasakan bahawa menyediakan kod atau setiap aplikasi dan kemudiannya meminta kami untuk membangunkan apa yang pada dasarnya salinan di samping tidak benar-benar memberi satu pengalaman pembelajaran yang baik. Saya tidak suka untuk membangunkan satu permohonan yang serupa, tetapi tidak serupa. permohonan contoh dengan faedah mempunyai panduan untuk merujuk kepada. Alternatif membina permohonan dari awal dengan demonstrasi akan sebanyak mungkin membawa kepada lebih banyak soalan tentang mengapa dan bagaimana, lantas memberikan pemahaman yang lebih baik rangka kerja ini, selepas anda boleh melihat khusus selepas kursus.

Syarahan terakhir terdiri daripada bekerja atas permohonan wiki dengan bantuan / panduan daripada pengajar. Selepas maklum balas kursus yang diambil, ia menekankan beberapa kali melalui kursus bahawa Zend mengambil maklum balas serius, sebenarnya nampaknya versi kursus kami adalah agak baru. Beberapa pemaju lain dalam syarikat itu akan mengambil kursus ini tidak lama lagi supaya ia akan menjadi menarik untuk melihat jika ini telah berlaku.

Gaya kursus adalah tidak formal, yang dibenarkan untuk mendapatkan maklum balas dan kerjasama antara peserta dan pengajar. Pemimpin kursus adalah mesra, mudah didekati (alamat e-mel telah dikongsi untuk soalan), dan sementara persembahan dari slaid adalah sedikit yang goyah nampaknya cekap sepenuhnya dalam rangka kerja. Beliau dengan jelas seseorang yang menggunakan rangka kerja secara tetap daripada seseorang yang diajar untuk mengajar kursus, saya suka pengalaman 'dunia sebenar' dalam hal itu.

Rasa keseluruhan

Dalam beberapa cara, saya mendapati kursus membuang masa, di lain-lain ia adalah sangat berguna. Semoga saya akan mendapat sebab saya merentasi jelas, dan mungkin memberikan sedikit makanan untuk mendapatkan maklum balas pemikiran atau berguna (mengetahui saya ini tidak mungkin!).

Untuk diri sendiri, kursus ini bertujuan pada tahap terlalu rendah. Setelah melalui panduan mula pantas, baca Zend Rangka Kerja Rob Allen dalam Tindakan, dan bekerja dengan rangka kerja sedikit, saya tidak benar-benar mendapat apa-apa terlalu banyak. Saya akan menyukai kursus untuk menjemput dari akhir yang mula pantas dan membangunkan kemahiran tambahan.

Yang berkata, tajuk kursus tidak menyatakan dengan jelas "Rangka Kerja Zend: Asas" dan dalam aspek itu kursus ini mencapai apa yang ia menyatakan lakukan. Ahli-ahli lain dalam pasukan pembangunan yang belum menghabiskan masa melihat ke dalam kerangka selesai setiap sesi dengan penuh semangat dan bertanya soalan yang benar-benar baik untuk melihat.

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.

Log ke DB menggunakan Zend Rangka Kerja

Oleh , Selasa 14 April 2009 21:06

Saya telah berjaya mendapat tapak dan berjalan dengan Rangka Kerja Zend , semua pembalakan baik untuk Firebug / FirePHP langkah seterusnya adalah untuk log masuk ke DB. Saya juga mahu log beberapa maklumat tambahan yang menggunakan rangka kerja itu sebagai ejen pengguna, tarikh dan masa, dapatkan dan hantar pembolehubah. Jadi untuk melanjutkan manual sedikit di sini apa yang saya lakukan:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ('keutamaan' => 'keutamaan',
'Message' => 'mesej',
'Datetime' => 'timestamp',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars',
'Post_vars' => 'post_vars',
'Tapak' => 'tapak'
);

$ WriterDb = baru Zend_Log_Writer_Db ($ db, 'error_logging', $ columnMapping);
$ Logger = baru Zend_Log ($ writerDb);

$ Logger-> setEventItem ('datetime', tarikh ('Ymd H: i: s'));
$ Logger-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Pembalak-> setEventItem ('get_vars', print_r ($ _GET, benar));
$ Pembalak-> setEventItem ('post_vars', print_r ($ _POST, benar));
$ Pembalak-> setEventItem ('tapak', LAMAN);

$ Logger-> info ('mesej sistem maklumat');

Jika kekunci pelbagai dalam columnMapping $ adalah nama kolum saya. 'Keutamaan' dan 'mesej' difahami oleh Zend_Log_Writers tetapi bidang tambahan telah ditambah untuk memberikan saya beberapa maklumat tambahan.

Jelas ini menganggap bahawa anda telah pembalakan bekerja menggunakan salah satu daripada penulis-penulis lain 1 :)













Tema Panorama oleh Themocracy

5 pelawat online sekarang
4 tetamu, 1 bot, 0 ahli
Pelawat Max hari ini: 17 at 03:47 am UTC
Bulan ini: 26 di 2012/4/4 10:27 pm UTC
Tahun ini: 69 pada 27-02-2012 09:56 am UTC
Semua masa: 130 pada 28-03-2011 10:40 pm UTC