タグ

2020年11月25日のブックマーク (7件)

  • guzzleで並列処理とリトライをやろうとして折れた話 - BASEプロダクトチームブログ

    この記事はBASE Advent Calendar 2019の9日目の記事です。 devblog.thebase.in はじめまして。BASE株式会社のtatsuと申します。 最近、業務にて guzzle を使う機会がありました。結論から述べますと guzzle のみで実現することは出来ず Amazon sqs を併用するという形で落ち着いたのですが、いくつか知見を得ることも出来たのでその事について書きたいと思います。 主に guzzle/Pool と guzzle/RetryMiddleware の話になります。 最初の壁:ResponseがどのRequestの結果なのか分からん まず並列処理を実装しました。実際のものとは違いますが流れは一緒。 $urls = [ 'https://example_base.in/1', 'https://example_base.in/2', ]; $

    guzzleで並列処理とリトライをやろうとして折れた話 - BASEプロダクトチームブログ
  • 私が async/await、promise をちゃんと理解するまでのステップ1,2,3 - Qiita

    これは何? javascript の async/await を使いこなすために必要な事柄について、私なりに説明したものです。 書いてあること ステップ1)await 使えば待ってくれる 必要最小限の async/await、及び、エラーの catch の話 ステップ2)promise というもの promise の中には「正常データ = resolve」と「エラー = reject」のいずれかを保管できるという話 どうすれば、promise から、正常データ(resolve)を取り出せるか? どうすれば、promise から、エラー(reject)を取り出せるか? Promise.all の話 ステップ3)promiseを作る方法 callbackスタイルの関数を、promiseスタイルとして使う方法 setTimeout() を promiseスタイルにする async で promi

    私が async/await、promise をちゃんと理解するまでのステップ1,2,3 - Qiita
  • PHP: 関数の引数 - Manual : 可変長引数リスト

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 関数の引数 - Manual : 可変長引数リスト
  • PHPでGuzzleを使って非同期でHTTPリクエストを投げるメモ - Qiita

    非同期でHTTPリクエストができるGuzzleを試してみたメモ。 内部的にはcurl_multiを使っているそうです。 インストール composerを使ってインストールします。 <?php require 'vendor/autoload.php'; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request; use GuzzleHttp\Promise; use Psr\Http\Message\ResponseInterface; use GuzzleHttp\Exception\RequestException; $client = new Client(); $promises = []; for($i = 0; $i < 10; ++$i){ $promise = $client->requestAsync('GET', 'http:

    PHPでGuzzleを使って非同期でHTTPリクエストを投げるメモ - Qiita
  • Guzzleでの非同期リクエスト - Qiita

    環境 PHP5.6 Guzzle6.3 公式ドキュメント: http://docs.guzzlephp.org/en/stable/index.html guzzle インストール composerでインストールします。 require_once(dirname(__FILE__) . '/vendor/autoload.php'); use GuzzleHttp\Client; $client = new Client(); //$client = new \GuzzleHttp\Client(['cookies' => true]); //クッキーを利用したい場合 //$client = new \GuzzleHttp\Client(['debug' => true]); //通信内容をデバッグしたい場合 $promises[] = $client->requestAsync('GET

    Guzzleでの非同期リクエスト - Qiita
  • PHPで非同期処理|開発室ブログ|株式会社アクセスジャパン

    あるツールにおいて結果を得るまでの処理時間が長いのでその対策を検討しておりました。 まず原因としてはいくつかのAPIを数多くコールしていますが、それぞれのAPIレスポンスが遅いのもさることながら、 それらをシーケンシャルにコールしていることによりツール全体の処理時間が長大になっておりました。 諸般の都合上yumでインストルしたPHPで実装しており、マルチスレッドのpthreadsやPCNTLによるマルチプロセス等をインストールしてPHPをフルビルドすることが出来ないことから、 非同期処理に向け、有用なライブラリを国内外を問わず探して調査・検証を行いました。 候補選定 PHPの非同期処理に関するサイトをいくつかピックアップして候補を絞り込んでみました。 asyncphp/doorman()によるマルチプロセス PCNTLを導入しなくてもマルチプロセスを実装することが出来ます。 ただし必然的に

    PHPで非同期処理|開発室ブログ|株式会社アクセスジャパン
  • Laravelで非同期実行する | RE:ENGINES

    はじめに バックエンドの実装に関して、時間がかかる処理を行う場合、非同期に処理したいケースがあると思います。今回はLaravelで非同期に処理するための手軽な方法を紹介します。 動作環境 記事ではPHP 7.2、Laravel 5.5の環境を想定しています。 準備 非同期に処理するに当たりジョブのキューを管理する方法としては、データベースを利用する方法やRedisを利用する方法などがあります。Laravelでは標準でデータベース、Redis、Amazon SQS、Beanstalkdを利用することができますが、今回は最も手頃なデータベースを使用する実装を紹介します。 デーブルの作成 以下のコマンドを実行してキューを管理するためのテーブルを作成します。

    Laravelで非同期実行する | RE:ENGINES