この記事は何
でレスポンスだけ先に返すことで、slackのスラッシュコマンドのタイムアウトを逃れる方法を紹介しました。
また、Cloud Formationの立ちたがりを早くする方法として
で記事にしました。
しかし、処理の実装にライブラリを使っていると、上で紹介している方法でもスラッシュコマンドのタイムアウトを逃れられない場合があります。
この記事では、そのような場合に追加で行える高速化についてご紹介します。
方法
方法は、https://qiita.com/getty104/items/1d43da1cf830cc5b99ea で紹介したThreadによる非同期化に加え、Thread内でライブラリのロードを行うようにすることです。これにより、よりCloud Functionの立ち上がりのスピードが早くなり、レスポンスを返すのが早くなります。
↑の記事で書いている例を使うと以下のようなイメージです。
require 'functions_framework'
FunctionsFramework.http 'function' do |request|
Thread.new do
require 'some_library'
require 'some_library2'
...
very_long_transaction
'OK'
end
'Running...'
end