Saya telah bekerja dengan akka selama 7-8 bulan sekarang setiap hari. Ketika saya mulai, saya akan mengerjakan aplikasi dan memperhatikan bahwa aktor pada dasarnya akan digunakan di mana saja di dalam sistem aktor untuk berkomunikasi antara sebagian besar objek. Jadi saya melakukan hal yang sama - memutar aktor lain untuk x / y / z.
Tampaknya bagi saya bahwa ini mungkin terlalu sembarangan, menambah kompleksitas di mana itu tidak diperlukan - tapi saya tidak dapat menemukan diskusi tentang di mana aktor vs logika sinkron atau bahkan logika async melalui futures harus digunakan. Saya mulai merenungkan pendirian saya setelah rekan kerja saya menyebutkan sesuatu yang serupa. Saya menyadari beberapa kasus baru-baru ini di mana saya telah merenungkan tugas dan kemudian menghindari membuat aktor lain karena saya bisa mencapai hasil yang sama dengan aman dalam implementasi yang tidak dapat diubah - misalnya sesuatu seperti mendapatkan nilai konfigurasi dari db atau file di suatu tempat di mana Anda mengakses sangat jarang dan akan tunggu hasilnya adalah use case yang sebenarnya.
Secara khusus, menurut saya, kasus apa pun di mana Anda bermain dengan keadaan tidak berubah, aktor menciptakan kompleksitas dan membatasi throughput - fungsi murni dalam objek, misalnya, dapat disebut bersamaan tanpa risiko dengan tingkat konkurensi apa pun, namun seorang aktor hanya dapat memproses satu pesan pada satu waktu. Pertimbangan alternatifnya adalah Anda akan memarkir utas jika Anda harus menunggu hasilnya kecuali jika Anda mulai menggunakan futures tetapi jika Anda tidak perlu khawatir tentang pesan atau skala async, tampaknya mungkin terlalu sulit untuk mempekerjakan seorang aktor.
Jadi pertanyaan saya adalah - apakah ada waktu yang buruk untuk menggunakan aktor? Saya ingin tahu bagaimana erlang terlihat dan benar-benar menyukai wawasan orang lain. Atau jika ada beberapa prinsip seputar penggunaan aktor.
ask
aktor dan hanya menggunakan dataran Future
.