Jadual Kandungan
Penyelesaian
Mengapa tidak menjalankan tugas berjangka secara langsung di dalam bekas pelayan web?
Bagaimana untuk memastikan log pelaksanaan dan penangkapan ralat tugas masa?
Perangkap biasa dan cadangan pengoptimuman untuk tugas masa kontena
Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara mengkonfigurasi bekas untuk menjalankan skrip masa PHP

Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara mengkonfigurasi bekas untuk menjalankan skrip masa PHP

Jul 25, 2025 pm 07:27 PM
mysql linux redis docker composer persediaan persekitaran php tutorial php pemasangan docker ngi

Membina persekitaran kontena tugas PHP yang bebas boleh dilaksanakan melalui Docker. Langkah -langkah khusus adalah seperti berikut: 1. Pasang Docker dan Docker dikarang sebagai asas; 2. Buat direktori bebas untuk menyimpan fail Dockerfile dan Crontab; 3. Tulis Dockerfile untuk menentukan persekitaran PHP CLI dan pasangkan kron dan sambungan yang diperlukan; 4. Tulis fail Crontab untuk menentukan tugas masa; 5. Tulis docker-compose.yml untuk memasang direktori skrip dan konfigurasikan pembolehubah persekitaran; 6. Mulakan bekas dan sahkan log. Berbanding dengan melaksanakan tugas masa dalam bekas web, bekas bebas mempunyai kelebihan pengasingan sumber, persekitaran murni, kestabilan yang kuat, dan pengembangan yang mudah. Untuk memastikan log dan penangkapan ralat, anda harus mengalihkan output ke fail log, konfigurasikan log ralat PHP ke output ke aliran ralat standard, gunakan monolog untuk merekodkan log berstruktur, dan tetapkan kod keluar yang munasabah. Perangkap biasa termasuk ketidakkonsistenan zon waktu, pembolehubah persekitaran yang hilang, pelaksanaan tugas serentak, sumber kawalan, gangguan tugas, dan lain -lain. Adalah disyorkan untuk mengoptimumkan dengan menetapkan zon waktu, secara eksplisit lulus pembolehubah, reka bentuk idempotensi tugas, batasan sumber, penangkapan isyarat, dll.

Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara Mengkonfigurasi Skrip Masa PHP untuk Menjalankan Bekas

Membina persekitaran kontena tugas PHP yang bebas, terutamanya untuk menjalankan skrip masa, adalah bahagian yang sangat diperlukan untuk menguruskan aplikasi kompleks pada pendapat saya. Ia menyediakan cara yang bersih, terpencil dan cekap untuk mengendalikan tugas latar belakang yang tidak memerlukan tindak balas langsung kepada permintaan HTTP. Ringkasnya, ia adalah untuk melepaskan persekitaran PHP yang menjalankan tugas -tugas masa dari perkhidmatan web anda, supaya mereka masing -masing mempunyai keselamatan yang baik dan tidak ada gangguan antara satu sama lain.

Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara Mengkonfigurasi Skrip Masa PHP untuk Menjalankan Bekas

Penyelesaian

Untuk membina persekitaran kontena tugas PHP yang bebas, kami biasanya menggunakan Docker. Ini bukan sahaja menyelesaikan masalah konflik pergantungan, tetapi juga memberikan tugas -tugas yang dijadualkan sebagai kotak pasir yang stabil dan terkawal.

Saya biasanya melakukan ini:

Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara Mengkonfigurasi Skrip Masa PHP untuk Menjalankan Bekas

Pertama, pastikan bahawa Docker dan Docker Compose dipasang pada mesin hos anda. Ini adalah asas, tanpa mereka, tiada apa yang boleh dikatakan.

Seterusnya, buat struktur direktori berasingan untuk tugas masa anda. Saya secara peribadi suka meletakkan semua perkhidmatan backend dalam direktori induk, seperti services/cron , supaya tahapnya jelas. Dalam direktori cron ini, kami akan meletakkan fail Dockerfile dan crontab .

Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara Mengkonfigurasi Skrip Masa PHP untuk Menjalankan Bekas

1. Tulis Dockerfile

Dockerfile ini akan menentukan persekitaran PHP CLI anda. Memilih imej PHP CLI yang ringan adalah permulaan yang baik, seperti php:8.x-cli-alpine kerana ia adalah saiz kecil dan permulaan yang cepat. Kemudian anda perlu memasang alat cron , serta mana -mana sambungan skrip PHP anda mungkin perlu (seperti pdo_mysql , redis , amqp , dll.).

 # Perkhidmatan/Cron/Dockerfile
Dari PHP: 8.2-cli-alpine

# Pasang Cron dan biasa digunakan PHP Extension Run APK Tambah-No-cache Cron \
    && docker-php-ext-pemasangan pdo_mysql opcache bcmath \
    && dock-php-ext-enable Opcache # Opcache juga boleh meningkatkan prestasi dalam mod CLI. Walaupun ia tidak begitu jelas seperti FPM, ia lebih buruk daripada tidak ada# jika anda perlu memasang sambungan tambahan, seperti Redis
# Jalankan Pecl Pasang Redis \
# && docker-php-ext-enable redis

# Salin fail Crontab tersuai ke dalam Container Copy Crontab/etc/Crotabs/Root

# Beri fail Crontab keizinan yang betul dan pastikan perkhidmatan Cron mula dijalankan CHMOD 0644/etc/crotabs/root \
    && crontab/etc/crotabs/root \
    && sentuh /var/log/cron.log

# Jalankan perkhidmatan Cron apabila bekas bermula dan simpan bekas yang berjalan di latar depan supaya Docker memantau log cmd ["crond", "-f", "-l", "/var/log/cron.log"]

2. Tulis fail crontab

Fail ini mentakrifkan tugas masa anda. Perhatikan bahawa jalan harus menjadi jalan di dalam bekas.

 # Perkhidmatan/Cron/Crontab
# Jalankan skrip pembersihan data setiap hari pada 2 pagi 0 2 * * * php /app/scripts/clean_data.php >> /var/log/cron.log 2> & 1

# Jalankan skrip pemprosesan barisan setiap 5 minit */5 * * * * php /app/scripts/process_queue.php >> /var/log/cron.log 2> & 1

3. Tulis docker-compose.yml

Akhirnya, dalam direktori root projek anda, buat fail docker-compose.yml untuk mengatur bekas tugas masa ini. Di sini anda perlu memasang direktori di mana skrip PHP anda terletak supaya bekas boleh mengaksesnya.

 # docker-compose.yml
Versi: '3.8'

Perkhidmatan:
  # ... perkhidmatan lain, seperti perkhidmatan web anda, pangkalan data, dan lain -lain. Cron_worker:
    Membina:
      Konteks: ./services/cron # tentukan konteks membina Dockerfile Dockerfile: Dockerfile
    Jilid:
      - ./src:/App/Scripts # Gunung direktori skrip php anda ke/aplikasi/skrip di dalam bekas
      # Sekiranya anda memerlukan log yang berterusan, anda boleh memasang volume # - cron_logs: /var/log/cron.log
    Mulakan semula: Sentiasa # Pastikan persekitaran dimulakan semula secara automatik selepas container terhempas:
      # Lulus pembolehubah persekitaran yang diperlukan, seperti maklumat sambungan pangkalan data, dll. DB_HOST: YOUR_DB_HOST
      Db_name: your_db_name
      # ...
    # rangkaian:
    # - your_app_network # Jika anda mempunyai rangkaian tersuai, pastikan perkhidmatan seperti pangkalan data berada di rangkaian # yang sama:
# cron_logs: {} # Tentukan jumlah bernama untuk log berterusan # rangkaian:
# your_app_network:
#driver: jambatan

4. Mula dan sahkan

Di direktori di mana docker-compose.yml terletak, dijalankan:

 Docker -Compose UP -D -Membina Cron_Worker

Ini akan membina dan memulakan bekas tugas anda. Anda boleh menggunakan docker-compose logs -f cron_worker untuk melihat log kontena dalam masa nyata, termasuk log pelaksanaan kron dan output skrip.

Mengapa tidak menjalankan tugas berjangka secara langsung di dalam bekas pelayan web?

Ini benar -benar soalan yang baik, dan saya sering ditanya. Sejujurnya, saya juga membuat kemalasan seperti ini pada mulanya, berfikir, "Bukankah ia hanya persekitaran PHP, mengapa mengganggu ini?" Tetapi selepas latihan, saya mendapati bahawa ini adalah keputusan yang buruk, dengan alasan berikut:

Pertama, pengasingan sumber dan kesan prestasi . Tugas teras pelayan web (seperti NGINX PHP-FPM) adalah dengan cepat bertindak balas terhadap permintaan HTTP pengguna. Sekiranya tugas masa anda (terutamanya yang mungkin memakan masa, memakan CPU, atau memakan memori) dan perkhidmatan web diperah ke dalam bekas, apabila tugas-tugas masa berjalan, ia mungkin merampas sumber perkhidmatan web, menyebabkan laman web anda untuk bertindak balas dengan perlahan dan bahkan masa keluar dari permintaan. Ia seperti di dapur di mana seorang chef perlu memasak makanan dengan cepat untuk tetamu dan mencuci banyak pakaian kotor pada masa yang sama, dan kecekapannya pasti akan terjejas.

Kedua, pergantungan dan kesucian alam sekitar . Perkhidmatan web biasanya hanya memerlukan sedikit pelanjutan PHP dan konfigurasi untuk mengendalikan permintaan HTTP. Untuk tugas masa, mereka mungkin memerlukan sambungan yang sama sekali berbeza (seperti sambungan giliran mesej, perpustakaan pelanggan API tertentu) atau konfigurasi PHP yang berbeza (seperti had masa pelaksanaan yang lebih lama). Campurkannya bersama -sama dan imej kontena web anda akan menjadi kembung, yang mengandungi banyak perkara yang perkhidmatan web tidak perlu, menambah saiz imej dan konflik yang berpotensi.

Tambahan pula, kestabilan dan penyelesaian masalah . Sekiranya skrip tugas yang dijadualkan tidak cukup kukuh, atau kemalangan tugas disebabkan oleh masalah data, ia boleh menyebabkan seluruh bekas digantung. Jika perkhidmatan web dan tugas yang dijadualkan bersama -sama, laman web anda juga akan "downline" bersama -sama. Bagi bekas bebas, walaupun kontena tugas yang ditetapkan, perkhidmatan web masih boleh menyediakan perkhidmatan secara normal. Apabila masalah penyelesaian masalah, anda juga boleh lebih jelas mencari sama ada masalah dengan perkhidmatan web atau tugas masa.

Akhirnya, skalabiliti dan pengurusan . Perkhidmatan web biasanya perlu skala mendatar berdasarkan lalu lintas, sementara tugas masa hanya memerlukan satu contoh, atau memerlukan cara penjadualan dan pemantauan yang sama sekali berbeza. Memisahkannya membolehkan anda mengembangkan, mengemas kini dan mengurus secara bebas mengikut keperluan anda, sangat meningkatkan fleksibiliti. Pada pendapat saya, ini adalah mikrokosmos konsep seni bina mikroservis dalam pembangunan harian.

Bagaimana untuk memastikan log pelaksanaan dan penangkapan ralat tugas masa?

Memastikan ketelusan pelaksanaan tugas masa, iaitu, anda boleh tahu bila ia berjalan, sama ada ia berjaya, dan sama ada terdapat sebarang kesilapan. Ini adalah kunci operasi, penyelenggaraan dan debugging. Dalam hal ini, saya mempunyai pengalaman:

1. Output standard dan pengalihan ralat

Ini adalah kaedah yang paling asas dan berkesan. Dalam konfigurasi crontab anda, pastikan anda mengarahkan output standard skrip (STDOUT) dan ralat standard (STDERR) ke fail log.

 * * * * * php /app/scripts/your_script.php >> /var/log/cron.log 2> & 1

Di sini >> /var/log/cron.log akan menambahkan semua output skrip ke fail /var/log/cron.log . 2>&1 adalah helah yang menunjukkan ralat standard mengalihkan (deskriptor fail 2) ke mana output standard (deskriptor fail 1) mata. Dengan cara ini, sama ada output biasa skrip atau mesej ralat, ia akan ditulis kepada cron.log .

Bekas Docker akan menangkap output standard dan kesilapan standard proses crond , jadi anda dapat melihat log ini melalui docker-compose logs -f cron_worker .

2. Konfigurasi pelaporan ralat PHP dalam bekas

Pastikan persekitaran PHP dalam bekas dikonfigurasi dengan betul dengan laporan ralat. Dalam Dockerfile , anda boleh membuat fail php.ini tersuai dan menyalinnya, atau menetapkannya secara langsung di Dockerfile .

 # Perkhidmatan/Cron/Dockerfile
# ...
Salin custom-php.ini /usr/local/etc/php/conf.d/custom-php.ini
# ...

Kandungan custom-php.ini :

 # custom-php.ini
error_reporting = e_all & ~ e_notice & ~ e_deprecated & ~ e_strict
display_errors = off
log_errors = on
error_log = /dev /stderr; output Log ralat PHP ke ralat standard, supaya Docker juga dapat menangkapnya

display_errors = Off adalah untuk mengelakkan mengeluarkan mesej ralat terus ke persekitaran pengeluaran log, manakala log_errors = On memastikan bahawa kesilapan dilog masuk. Menetapkan error_log ke /dev/stderr adalah amalan yang sangat baik. Ia membolehkan log ralat dalaman PHP dikeluarkan melalui aliran ralat standard kontena, yang memudahkan koleksi sistem log docker bersatu.

3. Pembalakan peringkat permohonan

Untuk tugas masa yang lebih kompleks, saya sangat mengesyorkan menggunakan perpustakaan log profesional dalam skrip PHP, seperti monolog. Ini membolehkan anda merakam maklumat yang lebih terperinci dan berstruktur, termasuk permulaan tugas, akhir, langkah utama, kesilapan logik perniagaan, amaran, dll.

 // /p/scripts/process_queue.php
<? Php
memerlukan &#39;vendor/autoload.php&#39;; // Katakan anda menggunakan komposer

Gunakan monolog \ logger;
Gunakan monolog \ handler \ streamhandler;

// buat logger $ log = logger baru (&#39;queue_processor&#39;);
$ log-> pushHandler (baru StreamHandler (&#39;php: // stdout&#39;, logger :: info)); // output ke output standard cuba {
    $ log-> info (&#39;Tugas pemprosesan petikan bermula&#39;);
    // ... Logik Perniagaan Anda $ ProcesedCount = 0; // menganggap berapa banyak keping diproses // ...
    $ log-> info (&#39;tugas pemprosesan giliran selesai&#39;, [&#39;procesed_count&#39; => $ procesedcount]);

} tangkapan (\ excepe $ e) {
    $ log-> ralat (&#39;tugas pemprosesan giliran gagal&#39;, [&#39;error&#39; => $ e-> getMessage (), &#39;trace&#39; => $ e-> getTraceasString ()]);
    Keluar (1); // kembali kod keluar bukan sifar apabila kegagalan}

Dengan cara ini, walaupun log kron hanya merekodkan permulaan dan keluar skrip, anda dapat melihat proses pelaksanaan terperinci dan kesilapan yang berpotensi di dalam skrip dalam docker-compose logs .

4. Kod Keluar dan Pemantauan

Biarkan skrip PHP anda keluar dengan 0 kod keluar apabila berjaya, dan dengan kod keluar bukan sifar apabila kegagalan. Ini adalah konvensyen sejagat untuk Unix/Linux dan juga asas bagi sistem pemantauan automatik untuk menentukan sama ada tugas itu berjaya. Digabungkan dengan beberapa perkhidmatan pemantauan luaran (seperti HealthChecks.io), anda boleh ping URL selepas tugas itu berjaya dilaksanakan, atau menerima pemberitahuan apabila tugas itu tidak dilaksanakan untuk masa yang lama.

Perangkap biasa dan cadangan pengoptimuman untuk tugas masa kontena

Di jalan menuju tugas masa kontena, saya telah melangkah ke banyak perangkap dan meringkaskan beberapa pengalaman. Berikut adalah beberapa perangkap biasa dan cadangan pengoptimuman yang sepadan:

1. Masalah Zon Masa: Adakah tugas masa berjalan salah?

Ini adalah klise, tetapi ia sangat mudah untuk diabaikan. Anda mungkin telah menetapkan zon waktu yang betul pada tuan rumah, tetapi di dalam bekas, PHP atau crond boleh menggunakan masa UTC, menyebabkan masa pelaksanaan tugas masa anda tidak sepadan dengan jangkaan.

Cadangan:

  • Di Dockerfile secara eksplisit menetapkan zon waktu:
     Dari PHP: 8.2-cli-alpine
    # ...
    Env TZ Asia/Shanghai
    Jalankan ln -snf/usr/share/zoninfo/$ tz/etc/localtime && echo $ tz>/etc/timezone
    # ...
  • Tetapkan date.timezone dalam php.ini :
     Date.TimeZone = "Asia/Shanghai"
  • Zon Waktu Bersepadu: Pastikan pangkalan data, perkhidmatan web, dan bekas masa anda menggunakan zon waktu yang sama untuk mengelakkan kekeliruan data dan logik.

2. Pembolehubah persekitaran yang hilang: Tidak boleh skrip menyambung ke pangkalan data?

Bekas perkhidmatan web anda boleh mendapatkan pembolehubah persekitaran seperti maklumat sambungan pangkalan data, kekunci API, dan lain-lain. Melalui docker-compose.yml atau kaedah lain. Walau bagaimanapun, jika bekas tugas masa bebas tidak dikonfigurasikan dengan jelas, ia tidak akan mendapat maklumat ini.

Cadangan:

  • Dalam docker-compose.yml secara eksplisit lulus pembolehubah persekitaran untuk perkhidmatan cron_worker :
     Cron_Worker:
      # ...
      Persekitaran:
        Db_host: your_db_host
        Db_user: your_db_user
        Db_pass: your_db_pass
        # ...
  • Gunakan Rahsia Docker atau Alat Pengurusan Konfigurasi: Untuk maklumat sensitif, lebih selamat menggunakan rahsia docker atau alat seperti Hashicorp Vault, Rahsia Kubernet untuk mengurus, dan bukannya secara langsung mendedahkannya kepada docker-compose.yml .

3. Konvensyen Tugas dan Pelaksanaan Berulang: Punca Akar Kekacauan Data

Sekiranya tugas masa anda dilaksanakan dengan kerap (seperti sekali seminit), dan tugas terakhir belum selesai dan tugas baru dimulakan lagi, ini mungkin membawa kepada ketidakkonsistenan data atau sumber. Pelaksanaan berulang juga boleh dicetuskan terutamanya apabila bekas dimulakan semula atau sistem penjadualan semula.

Cadangan:

  • Tugas IDempo Design: Pastikan skrip PHP anda adalah idempotent, iaitu, melakukan operasi yang sama beberapa kali, dengan hasil yang sama seperti sekali. Sebagai contoh, apabila mengemas kini status, ia tidak hanya ditetapkan, tetapi periksa status semasa sebelum mengemas kini.

  • Mekanisme mengunci: Untuk tugas kritikal, mekanisme penguncian diperkenalkan. Ini boleh:

    • Kunci Fail: Pada permulaan skrip, cuba buat kunci fail, dan keluar jika sudah ada.
    • Kunci pangkalan data: Gunakan kunci baris atau kunci jadual pangkalan data.
    • Kunci yang diedarkan: Jika anda menggunakan beberapa contoh, pertimbangkan untuk menggunakan kunci yang diedarkan seperti Redis atau Zookeeper.
    • Fungsi flock : PHP Built-In flock Function boleh digunakan untuk kunci fail.
     // Contoh kunci fail mudah $ lockfile = &#39;/tmp/my_cron_job.lock&#39;;
    $ fp = fopen ($ lockfile, &#39;c&#39;);
    jika (! Flock ($ fp, lock_ex | lock_nb)) {
        // tidak dapat memperoleh kunci, menunjukkan bahawa tugas itu sedang berjalan echo "Tugas sedang berjalan, melangkau pelaksanaan ini. \ N";
        fclose ($ fp);
        keluar ();
    }
    // Dapatkan kunci dan laksanakan tugas echo "Tugas mula melaksanakan ... \ n";
    tidur (10); // Operasi yang memakan masa simulasi echo "Pelaksanaan tugas selesai. \ N";
    Flock ($ fp, lock_un); // Lepaskan kunci fclose ($ fp);
    unlink ($ lockfile); // padamkan fail kunci

4. Keterbatasan Sumber: Mencegah tugas masa "tidak terkawal"

Tugas masa yang tidak ditulis secara tidak wajar boleh mengambil banyak CPU atau memori, yang mempengaruhi operasi normal perkhidmatan lain pada tuan rumah.

Cadangan:

  • Tetapkan had sumber dalam docker-compose.yml :
     Cron_Worker:
      # ...
      menyebarkan:
        Sumber:
          Had:
            CPU: &#39;0.5&#39; # Hadkan penggunaan CPU hingga 0.5 memori teras: 256m # hadkan penggunaan memori hingga 256MB
          Tempahan:
            CPU: &#39;0.1&#39; # Reserved 0.1 Memori Teras: 64m # Reserved 64MB Memori

    Ini secara berkesan dapat menghalang tugas tunggal daripada menyeret seluruh sistem.

5. Shutdown Elegant: Pastikan Integriti Tugas

Apabila bekas dihentikan atau dimulakan semula, jika tugas masa berjalan, ia sepatutnya mempunyai peluang untuk menyelesaikan operasi semasa atau sekurang -kurangnya membersihkannya.

Cadangan:

  • Tangkap isyarat: Tangkap isyarat SIGTERM dalam skrip PHP untuk membersihkan, seperti menjimatkan kemajuan dan melepaskan sumber.
  • Docker Compose stop_grace_period : Menambah stop_grace_period boleh memberi bekas lebih banyak masa untuk memproses isyarat penutupan.
     Cron_Worker:
      # ...
      stop_grace_period: 30s # Beri bekas 30 saat untuk ditutup dengan anggun

    Ini adalah beberapa masalah yang saya hadapi dan diselesaikan dalam amalan. Walaupun tugas -tugas masa kontena membawa kemudahan, mereka juga memerlukan pertimbangan dan konfigurasi yang teliti untuk benar -benar memberi permainan penuh kepada kelebihan mereka.

    Atas ialah kandungan terperinci Bagaimana untuk membina persekitaran kontena tugas PHP yang bebas. Cara mengkonfigurasi bekas untuk menjalankan skrip masa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sistem Huawei Harmonyos 6 membatalkan akhiran 'seterusnya': ia akan menjadi Hongmeng asli pada masa akan datang Sistem Huawei Harmonyos 6 membatalkan akhiran 'seterusnya': ia akan menjadi Hongmeng asli pada masa akan datang Sep 24, 2025 pm 04:12 PM

Berita terkini pada 18 September, Huawei Harmonyos6 telah melancarkan pelbagai pusingan versi pratonton untuk pemaju, dan baru -baru ini membuka kelayakan pengalaman kepada beberapa pengguna yang telah mencubanya buat kali pertama. Menurut maklum balas pengguna, nama sistem semasa tidak lagi memaparkan akhiran "seterusnya", dan ia secara rasmi dinamakan semula kepada Harmonyos6.0. Huawei pada mulanya mencadangkan nama HarmonyOsNext untuk kali pertama di Persidangan Pemaju pada bulan Ogos 2023, yang bertujuan untuk menandakan sistem Hongmeng memasuki peringkat pembangunan baru dan menyedari pembangunan diri asli yang sebenar. Kejayaan teras HarmonyOsNext adalah untuk mengadopsi sepenuhnya senibina sistem asas yang dibangunkan secara bebas, sepenuhnya mengeluarkan kernel Linux dan Android AOSP, dan hanya menjalankan aplikasi berdasarkan kernel Harmonyos.

Cara menyambung ke VPN di Linux Cara menyambung ke VPN di Linux Sep 24, 2025 am 04:58 AM

Tosetupavpnonlinux: 1.InstallopenvpnandnetworkManager.2.importan.ovpnfileorconfigureManually.3.usewireguardforfasterconnections.4.connectvianmcliforautomation.ensredentialsandcertificificateRysiganceGrepersyverigroperseria.

Komputer ini tidak dapat terjebak ketika menetapkan semula win10_solve masalah bahawa kemajuan sistem Win10 menetapkan semula terjebak pada peratusan tertentu Komputer ini tidak dapat terjebak ketika menetapkan semula win10_solve masalah bahawa kemajuan sistem Win10 menetapkan semula terjebak pada peratusan tertentu Sep 24, 2025 pm 05:30 PM

Apabila komputer semula terperangkap, tunggu dan perhatikan aktiviti cakera keras untuk mengesahkan sama ada ia berjalan; Kemudian cabut rangkaian untuk mengelakkan gangguan kemas kini, atau masukkan mod selamat untuk menghapuskan konflik perisian; Semak kesilapan cakera melalui CHKDSK, bersihkan cache softwaredistribusi untuk menyelesaikan masalah kemas kini; Sekiranya masih tidak sah, gunakan media pemasangan Windows untuk memulakan pembaikan dan lakukan operasi tetapan semula.

Cara Mendapatkan Saiz Pangkalan Data MySQL Cara Mendapatkan Saiz Pangkalan Data MySQL Sep 24, 2025 am 03:56 AM

Pertanyaan maklumat_schema.tables untuk mendapatkan saiz pangkalan data MySQL dengan tepat; 2. Tentukan jadual_schema untuk menyemak jumlah bait dan saiz MB pangkalan data tertentu; 3. 4. Hasilnya mengandungi data dan panjang indeks, jangan masukkan fail log, dan pangkalan data tanpa jadual tidak dipaparkan atau dibatalkan; 5. Anda perlu mempunyai kebenaran yang sepadan untuk mengakses maklumat_schema.

Cara mendapatkan tarikh semasa di mysql Cara mendapatkan tarikh semasa di mysql Sep 24, 2025 am 01:33 AM

Usecurdate () togetTheCurrentdateInmysql; itreturns'yyyy-mm-dd'format, idealfordate-onlyoperations.

Cara terus memaparkan bar penanda buku dalam pelayar chrome_tutorial untuk menetapkan paparan tetap bar bookmark Chrome Cara terus memaparkan bar penanda buku dalam pelayar chrome_tutorial untuk menetapkan paparan tetap bar bookmark Chrome Sep 24, 2025 am 10:33 AM

Bar penanda buku boleh dipulihkan dengan mengklik menu tiga titik di sudut kanan atas krom dan memilih "penanda buku"> "menunjukkan bar penanda buku"; 2. Gunakan kekunci pintasan Ctrl B (Windows) atau Command Shift B (Mac) untuk menukar paparan dengan cepat; 3. Pastikan bahawa "Bar Bookmark Show" ditetapkan untuk "sentiasa menunjukkan" dalam "penampilan" halaman tetapan; 4. Jika tidak sah, anda boleh menetapkan semula tetapan penyemak imbas anda untuk memulihkan keadaan lalai.

Cara Mengehadkan Keputusan dalam Pertanyaan MySQL Cara Mengehadkan Keputusan dalam Pertanyaan MySQL Sep 23, 2025 am 05:02 AM

TolimitresultsinMySQL,usetheLIMITclauseattheendofaSELECTstatementtospecifythenumberofrowstoreturn,suchasLIMIT5forthefirstfiverows;addanoffsetlikeLIMIT5,5toskipthefirstfiveandretrievethenextfive,usefulforpagination;alwayscombineLIMITwithORDERBYforcons

Bagaimana untuk menggunakan gabungan kiri di MySQL? Bagaimana untuk menggunakan gabungan kiri di MySQL? Sep 25, 2025 am 05:08 AM

LeftjoinreturnsallrowsfromthelefttableandMatchingRowsFromTheRightTable, withNullValuesfornon-matchingcolumns.2.syntax: selectcolumnsfromleft_tabeleftjoinright_tableoncondition.3.seRampleShipsandTheRoSderSandSoRSanderShipSandTheRoSoRderSandSandReRoSoRdoSoRDORSANDSORSANDSORDERSAND

See all articles