Q Dili - Süreçler Arası İletişim
KDB +, süreçler arası iletişim yoluyla bir sürecin başka bir süreçle iletişim kurmasına izin verir. Kdb + süreçleri aynı bilgisayardaki, aynı ağdaki ve hatta uzaktan herhangi başka bir kdb + 'ya bağlanabilir. Sadece bağlantı noktasını belirtmemiz gerekiyor ve sonra müşteriler bu bağlantı noktasıyla konuşabilir. Hiçq süreç herhangi bir başkasıyla iletişim kurabilir q ağda erişilebilir olduğu ve bağlantıları dinlediği sürece işlem yapın.
bir sunucu işlemi bağlantıları dinler ve tüm istekleri işler
bir istemci süreci bağlantıyı başlatır ve yürütülecek komutları gönderir
İstemci ve sunucu aynı makinede veya farklı makinelerde olabilir. Bir süreç hem istemci hem de sunucu olabilir.
Bir iletişim olabilir,
Synchronous (bir sonucun döndürülmesini bekleyin)
Asynchronous (bekleme yok ve sonuç döndürülmedi)
Sunucuyu Başlat
Bir q sunucu, dinlenecek bağlantı noktası belirtilerek başlatılır,
q –p 5001 / command line
\p 5001 / session command
İletişim Kolu
İletişim tanıtıcısı, ":" ile başlayan ve şu biçime sahip bir semboldür:
`:[server]:port-number
Misal
`::5001 / server and client on same machine
`:jack:5001 / server on machine jack
`:192.168.0.156 / server on specific IP address
`:www.myfx.com:5001 / server at www.myfx.com
Bağlantıyı başlatmak için, bir tamsayı bağlantı tutamacı döndüren "hopen" işlevini kullanıyoruz. Bu tutamaç, sonraki tüm istemci istekleri için kullanılır. Örneğin -
q)h:hopen `::5001
q)h"til 5"
0 1 2 3 4
q)hclose h
Eşzamanlı ve Eşzamansız Mesajlar
Bir tutamacımız olduğunda, eşzamanlı veya eşzamansız olarak bir mesaj gönderebiliriz.
Synchronous Message- Bir mesaj gönderildikten sonra bekler ve sonucu döndürür. Formatı aşağıdaki gibidir -
handle “message”
Asynchronous Message- Bir mesaj gönderdikten sonra, beklemek zorunda kalmadan bir sonraki ifadeyi işlemeye başlayın ve bir sonuç döndürmek. Formatı aşağıdaki gibidir -
neg[handle] “message”
Bir yanıt gerektiren mesajlar, örneğin işlev çağrıları veya seçim ifadeleri, normalde eşzamanlı formu kullanır; bir çıktı döndürmesi gerekmeyen mesajlar, örneğin bir tabloya güncellemeler eklemek, asenkron olacaktır.