Baca dalam bahasa Inggris

Bagikan melalui


Permintaan satu arah

Butir melakukan eksekusi permintaan asinkron, mengharuskan semua metode antarmuka biji-bijian untuk mengembalikan jenis asinkron, seperti Task. Menunggu penyelesaian tugas yang dikembalikan dari panggilan grain memberi tahu pemanggil bahwa permintaan telah selesai, memungkinkan mereka untuk menangani pengecualian apa pun atau menerima nilai pengembalian. Orleans juga mendukung permintaan satu arah, memungkinkan penelepon untuk memberi tahu butir tentang suatu peristiwa tanpa mengharapkan pengecualian atau sinyal penyelesaian.

Permintaan satu arah segera kembali ke pemanggil dan jangan memberi sinyal kegagalan atau penyelesaian. Permintaan satu arah bahkan tidak menjamin bahwa penerima panggilan menerima permintaan. Manfaat utama permintaan satu arah adalah mereka menghemat biaya olahpesan yang terkait dengan pengiriman respons kembali ke pemanggil dan oleh karena itu dapat meningkatkan performa dalam beberapa kasus khusus. Permintaan satu arah adalah fitur performa tingkat lanjut dan harus digunakan dengan hati-hati dan hanya ketika pengembang telah menentukan bahwa permintaan satu arah bermanfaat. Disarankan untuk lebih memilih permintaan dua arah reguler, yang menyelesaikan sinyal dan menyebarluaskan kesalahan kembali ke pemanggil.

Permintaan dapat dibuat satu cara dengan menandai metode antarmuka biji-bijian OneWayAttributedengan , seperti:

public interface IOneWayGrain : IGrainWithGuidKey
{
    [OneWay]
    Task Notify(MyData data);
}

Permintaan satu arah harus mengembalikan atau Task ValueTask dan tidak boleh mengembalikan varian generik dari jenis tersebut (Task<TResult> dan ValueTask<TResult>).