がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

おまけ:もしMagicWeaponでメッセージキューを実装するとしたら

すげぇアバウトなインタフェース草案。


送信

  // オブジェクトを作成
  $msq = new mw_message_queue();

  // key設定のやり方への可能性
  $msq->set_key($key)
  $msq->set_key($config)
  // クラス継承してコンストラクタで設定

  // メッセージを設定。stringでもオブジェクトでも、かなぁ
  $msq->set_message($message);
  
  // 省略可能
  $msq->set_message_type(1);
  // 実際に使うんなら、継承して、以下のような感じのほうが好みだなぁ
  $msq->set_message_type_hogera();
  $msq->set_message_type_mugugu();

  // メッセージをぶち込み
  $r = $msq->enqueue();

  if (false === $r) {
    print $msq->get_error_code();
  }


受信

  // オブジェクトを作成
  $msq = new mw_message_queue();

  // key設定のやり方への可能性
  $msq->set_key($key)
  $msq->set_key($config)
  // クラス継承してコンストラクタで設定

  // 省略可能
  $msq->set_message_type(1);
  // 実際に使うんなら、継承して、以下のような感じのほうが好みだなぁ
  $msq->set_message_type_hogera();
  $msq->set_message_type_mugugu();

  // 非同期にするなら設定
  $msq->set_nowait();

  // メッセージをげと
  $r = $msq->dequeue();

  if (false === $r) {
    print $msq->get_error_code();
    return ;
  }
  // else
  $message = $msq->get_message();