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.