タグ

workerに関するhiroyukimのブックマーク (2)

  • Server::Starterに対応するとはどういうことか - limitusus’s diary

    StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。 Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してくれる。 これはfork(2)とexec(2)によってファイルディスクリプタを引き継ぐことにより実現されているが、ファイルディスクリプタそのものをどのように引き渡しているのか、という問題。 exec(2)により実行バイナリは差し換わってしまうので、プログラム中の変数により引き継ぐことはできない。 Server::Starterではこれを環境変数SERVER_STARTER_PORTにより実現している。 おおよそ以下のような感じ。 FD = integer

    Server::Starterに対応するとはどういうことか - limitusus’s diary
  • Writing worker queues, in Go

    Have you ever wanted to write something that is highly concurrent, and performs as many tasks as you will let it, in parallel? Well, look no further, here is a guide on how to do just that, in Go! This isn't new For an absolutely riveting (to me) talk on concurrency patterns, I highly recommend watching the following videos: Concurrency is not Parallelism by Rob Pike is a good video to start with,

  • 1