タグ

networkとdesignpatternに関するkana321のブックマーク (2)

  • 第29回 Reactorで非同期処理をやってみよう(1) | gihyo.jp

    はじめに WebサービスAPIをコールするような、ネットワークを介した通信処理は、今日では頻繁に行われています。 ローカルマシンのみで完結する処理と比べると、通信が必要な処理は多大な時間が必要になります。相手サーバへの接続、相手サーバ側での処理、相手サーバからの受信など、何もすることなくただ待つだけの時間が存在します。 この無駄な時間の間に他の処理ができるならば、トータルの処理時間を大幅に短縮することが可能になります。これを実現するためにスレッドがよく使われています。しかしマルチスレッドプログラミングはいろいろと注意を払う点も多く、使いにくさを感じている方も多いのではないでしょうか。 今回はReactorパターンという、マルチスレッドとは違ったアプローチで非同期処理を実現してみたいと思います。 複数のwebサーバからHTML文章を取得してみる 同期処理 ひとまず非同期処理を忘れて、シーケ

    第29回 Reactorで非同期処理をやってみよう(1) | gihyo.jp
  • 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi

    三度の飯よりエラー処理。古橋です。 大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを冪等にする リソースに常に一意なIDが振られていれば、Deleteを冪等にするのは難しくない。そもそも同じリソースを2度削除することはできない。 一つ注意するべきなのは、削除されたリソースのIDが再利用されるケースでは、Deleteの冪等性は保証されない。例えば、kill -KILL <pid> コマンドはDelete系のAPIと考えられるが、pidは再利用されるので、何度も繰り返すと意図しないプロセスを殺してしまう可能性がある。 一般にIDの生成は非常に難しい問題だが、Deleteに関してのみ言えば再利用されなければいいので、単調増加する整数(

    続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
  • 1