Alur Kerja Asinkron menggunakan Tutorial Julia

 – Beragampengetahuan
6 mins read

Alur Kerja Asinkron menggunakan Tutorial Julia – Beragampengetahuan

Oleh: Jacob Zelko

Repost dari:

Hari: 7 Januari 2023

Ringkasan: Panduan menyeluruh tentang cara menggunakan Julia untuk alur kerja asinkron untuk melakukan banyak hal sekaligus!

kata kunci: #blog #archive #julia #programming #literate #workflow #asynchronous #weave #browser #sync #node

Tidak tersedia

    1. Motivasi
    2. Pengaturan
    3. Alur kerja sederhana
      1. Blokir Alur Kerja
      2. Alur kerja asinkron
    4. Alur Kerja Asinkron untuk Pemrograman Literasi
    5. Kesimpulan
  1. Pembawa acara
  2. Pembawa acara
  3. Membahas:

Contents

Motivasi

Terkadang saya ingin mengeksekusi file Julia yang baru saja saya edit. Ini berbeda dari paket Revise.jl yang luar biasa (dibuat oleh Tim Holy) karena saya ingin mengeksekusi seluruh file, bukan hanya memperbarui definisi fungsi. Selain itu, saya mungkin hanya ingin Julia melakukan sesuatu yang sama sekali berbeda saat memperbarui file atau direktori. Ini bisa sangat berguna dalam analisis sastra serta pemrograman. Membuat posting yang diperluas pada proses saya untuk ini terinspirasi oleh sebuah posting oleh Julia Discourse yang saya berikan jawabannya.

Pengaturan

Inilah cara saya merekomendasikan pengaturan lingkungan Julia Anda untuk mengikuti tutorial ini (saya berasumsi Anda menginstal Julia dengan benar):

  1. Buat folder (folder) kosong di suatu tempat di komputer Anda. (CATATAN: Demi tutorial ini, saya akan menyebutnya folder “test”).

  2. Di editor teks favorit Anda (seperti Notepad, Vim, VSCode, dll.), buka folder ini.

  3. Buka dan buat file bernama “tmp.jmd” (CATATAN: Biarkan file dan editor Anda tetap terbuka karena kami akan kembali ke sini sebentar lagi).

  4. Buka Julia REPL Anda di direktori dan aktifkan lingkungan sementara dalam mode paket:

pkg> activate --temp
  1. Tambahkan ke lingkungan sementara ini paket-paket berikut:

pkg> add FileWatching, Weave
  1. Instal node ke mesin Anda.

Saya sarankan untuk menggunakan alat yang hebat, nvmmemungkinkan pengelolaan yang mudah dari versi node.

  1. Instal paket simpul, browser-syncmemungkinkan sinkronisasi situs berdasarkan pembaruan.

Berikut adalah perintah yang dapat Anda gunakan di baris perintah Anda:

npm i -g browser-sync

CATATAN: Langkah 6 dan 7 tidak diperlukan jika Anda tidak tertarik dengan pemrograman literasi

Alur kerja sederhana

Ada dua cara untuk memulai alur kerja ini. Satu blok (artinya Anda tidak dapat menggunakan REPL Julia saat Anda sedang bekerja) dan yang lainnya memunculkan proses latar belakang asinkron untuk memungkinkan Anda bekerja dengan REPL yang sama. Inilah gif yang menunjukkan alur kerja ini dalam aksi:

Blokir Alur Kerja

Ini membuat tugas sinkronisasi di Julia REPL Anda yang kemudian dapat menjalankan perintah apa pun yang Anda inginkan saat Anda memantau file (atau direktori) tertentu. Dalam hal ini, saya mencetak pernyataan yang bertuliskan “Perubahan terdeteksi!” ke REPL saya setiap kali ada perubahan pada file bernama “tmp.jmd”.

using FileWatchingwhile true 
    watch_file("./tmp.jmd")
    println("Change Detected!")
end

Alur kerja ini tidak optimal karena perulangan ini berlanjut dan mengunci REPL Anda agar tidak melakukan hal lain.

Alur kerja asinkron

Ini membuat tugas asinkron di latar belakang Julia REPL Anda yang kemudian dapat menjalankan perintah apa pun yang Anda inginkan saat Anda memantau file (atau direktori) tertentu. Dalam hal ini, saya mencetak pernyataan yang bertuliskan “Perubahan terdeteksi!” ke REPL saya setiap kali ada perubahan pada file bernama “tmp.jmd”.

using FileWatching@async while true 
    watch_file("./tmp.jmd")
    println("Change Detected!")
end

Dari sini, Anda masih dapat berinteraksi dengan REPL ini saat tugas ini berjalan di latar belakang. Selanjutnya, Anda dapat mengubah baris yang bertuliskan println("Change Detected!") dengan perintah (atau perintah) apa pun yang ingin Anda aktifkan.

Alur Kerja Asinkron untuk Pemrograman Literasi

Alur kerja ini memungkinkan seseorang untuk bekerja dengan dokumen Julia Markdown Weave.jl untuk mempratinjau pekerjaan Anda secara real time. Ada beberapa langkah untuk memulai alur kerja, tetapi inilah tampilannya dalam tindakan:

Pertama, jalankan kode berikut di REPL Julia untuk memulai proses asinkron yang melacak perubahan dan memberi tahu Julia untuk menganyam file yang akan kita ubah:

using FileWatching
using Weave@async while true 
    watch_file("./tmp.jmd")
    weave("./tmp.jmd")
end

Selanjutnya, jalankan ini di terminal terpisah:

browser-sync start --server --start --file "./*.html"

atau perintah ini di Julia REPL Anda (CATATAN: Ini akan membuat sesi REPL Anda sangat berantakan tetapi Anda masih dapat menggunakan REPL Anda):

@async run(`browser-sync start --server --start --file "./*.html"`)

Pada titik ini Anda akan melihat browser-sync memuntahkan banyak informasi yang terlihat seperti ini:

[Browsersync] Access URLs:
 --------------------------------------
       Local: 
    External: 
 --------------------------------------
          UI: 
 UI External: 
 --------------------------------------
[Browsersync] Serving files from: ./

Anda akan ingin mendapatkan URL yang terlihat seperti dalam Local dan kemudian buka di browser web Anda. Dengan URL yang Anda terima (mungkin di portal lain), navigasikan ke /tmp.html.

Terakhir, setelah Anda memiliki semua ini, lanjutkan dan tambahkan blok kode ini tmp.jmd file telah dibuat:

# Hello World This is a Julia Markdown file. ```julia 
2 + 2
```

Anda akan melihat beberapa hal terjadi. Anda akan melihat beberapa pesan dari ucapan REPL Julia Weave.jl menenun dokumen Anda menjadi keluaran yang diinginkan. Maka Anda akan melihat browser-sync katakan sesuatu tentang pembaruan atau sinkronisasi. Akhirnya, Anda akan melihat pembaruan browser Anda ke versi terbaru dari dokumen anyaman.

Silakan jelajahi ini lebih jauh dan lihat dinamika alur kerja! Saya cenderung melakukan ini ketika saya secara iteratif mengembangkan laporan di Julia dan ingin melakukan modifikasi di REPL pada saat yang sama saya membuat dokumentasi. Harus menunggu render Weave.jl dokumentasi dan sejenisnya sangat menyusahkan dan ini menghilangkan rasa sakit itu.

Kesimpulan

Saya harap Anda menghargai artikel ini! Jika Anda memiliki saran, komentar, atau alur kerja tambahan yang dapat digunakan, jangan ragu untuk berkomentar di bawah. Semoga sesi Julia Anda sekarang semakin cepat!

Pembawa acara

Pembawa acara

Membahas:

Software Terbaru Saat Ini



Aplikasi yang sedang trend saat ini

object oriented programming, programming language, programming adalah, web programming, belajar programming, tournament software, software, software adalah, contoh software, apa itu software, pengertian software, aplikasi, aplikasi penghasil uang, aplikasi bokep, aplikasi video, programming

#Alur #Kerja #Asinkron #menggunakan #Tutorial #Julia

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *