Background Job Worker

— 1 minute read

Dalam pengem­ban­gan web, re­quest yang memer­lukan process yang lama (long run­ning) da­pat mem­blokir re­quest lain. Kalo seperti ini, maka web kita tidak re­spon­sive dan cepat. Process lama ini da­pat kita al­ihkan ke process lain yang ber­jalan di samp­ing process utama yang dise­but worker.

Salah satu pat­tern umum un­tuk meng­gu­nakan worker adalah ketika ada re­quest ke web servis, maka akan di-re­ply lang­sung, lalu akan di­jadawlkan task dari re­quest terse­but ke worker. Misalkan kita men­da­pat re­quire­ment sbb:

Ketika user men­gu­pload gam­bar, re­size ter­lebih dahulu baru sim­pan ke stor­age

Dari re­quire­ment terse­but da­pat dibagi men­jadi:

  • jalankan worker yang me­nunggu tugas” ma­suk
  • tunggu user se­le­sai up­load
  • balas den­gan sta­tus sedang diproses” ke user dan kode http sta­tus 2xx
  • jad­walkan tugas” mere­size gam­bar yang di­u­pload ke worker. Bisa den­gan mema­sukkan tugas” ke dalam process an­trian (queue)
  • worker mengam­bil tu­gas dari an­trian
  • worker mere­size gam­bar, lalu sim­pan ke dalam stor­age

Dengan meng­gu­nakan worker ap­likasi men­jadi lebih cepat dalam mem­berikan ba­likan ke user & men­gu­rangi long run­ning re­quest yg menye­babkan blok­ing.