Herokuでいくつかのnode.jsスクリプトを実行する

あいうえお

いくつかの.jsスクリプトがありますが、同じHerokuアプリでそれらをすべて同時に実行する方法はありますか?

folderはこのように見えます:

**MAIN_FOLDER**
    Procfile
    script1.js
    script2.js
    script3.js
    script4.js
    script5.js
    script6.js
    script7.js
    script8.js
    script9.js

私のProcfile

worker: node script1.js
worker: node script2.js
...
worker: node script8.js
worker: node script9.js

そして私のpackage.json

 "scripts": {
    "script1": "node script1.js",
    "script2": "node script2.js",
    "script3": "node script3.js",
    "script4": "node script4.js",
    "script5": "node script5.js",
    "script6": "node script6.js",
    "script7": "node script7.js",
    "script8": "node script8.js",
    "script9": "node script9.js",
    "start": "npm-run-all --parallel script1 script2 script3 script4 script5 script6 script7 script8 script9"
  }
ヨニ・ラビノビッチ

ここにはいくつかの問題があります。まず、各ノードスクリプトを別々のHeroku dynoで実行しますか、それとも1つのdynoでノードスクリプトを並行して実行するだけで十分ですか?

1つのdynoで十分な場合は、Procfileを次のように変更する必要があると思います。

worker: npm start

(「npmstart」スクリプトで使用しているnpm-run-allがpackage.json依存関係に表示されると想定しています。そうでない場合は、機能しません)。

また、アプリにWebダイナモが必要ないようです(つまり、着信HTTP / Sトラフィックを処理していません)。その場合は、のようなものでアプリのフォーメーションを明示的にスケーリングする必要がありますheroku scale web=0 worker=1

実際にワーカーダイノを「常にオン」にする必要がある場合にのみ、これを行う必要があることに注意してください。ただし、スクリプトで何らかの作業を行ってから終了するだけでよい場合は、代わりに1回限りのdynoを使用する必要がありますその場合、heroku scaleワーカーを0に設定すると、コマンドラインから。を使用して1回限りのダイナモとして起動できますheroku run worker

ただし、ノードスクリプトを異なるdynoインスタンスで並行して実行することを目的としている場合は、まず、Dynoのスケーリング制限に注意する必要があります「フリーダイナモタイプを使用するアプリケーションは、最大2つの同時実行ダイナモに制限されている」ことに注意してください。これにより、フリーダイナモと並行して9つのダイナモを実行できなくなるようです。1回限りのdynoを使用すると、わずかに多くの無料の同時dynoを取得できますが、それでも9つの同時ノードスクリプトを実行するには十分ではありません。

有料のdynoを使用している場合、必要なことを行う1つの方法は、Procfileを次のように変更することです。

worker1: node script1.js
worker2: node script2.js
...
worker8: node script8.js
worker9: node script9.js

次に、を使用heroku scaleして各worker* プロセスタイプを1にスケーリングします

ただし、9ノードのスクリプトを「常にオン」にする必要がある場合にのみ実行する必要があることに注意してください。スクリプトが単に何らかの作業を行ってから終了する必要がある場合は、代わりに1回限りのdynoを使用する必要がありますそれ以外の場合は、未使用のリソースの多くを支払うことになります!! その場合、を使用heroku scaleしてすべてのworker*プロセスタイプを0にスケーリングし、コマンドラインから9つのスクリプトを起動して、次のようなものと並行して個別の1回限りのdynoで実行できます。

heroku run worker1 &
heroku run worker2 &
...
heroku run worker9 &

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

node.js から Python スクリプトを実行する

分類Dev

Herokuで2つのスクリプトを実行するにはどうすればよいですか?

分類Dev

node.jsスクリプトを永久に実行する

分類Dev

永久にいくつかのスクリプトを実行する

分類Dev

Electronアプリ内で悪夢のjsスクリプトを実行する

分類Dev

Pythonの異なるフォルダでいくつかのスクリプトを実行する方法

分類Dev

PowerShellスクリプトでいくつかのコマンドレットを実行する方法は?

分類Dev

PHPが機能しない状態でいくつかのPythonスクリプトを実行する

分類Dev

FirebaseでNode.jsスクリプトを実行するにはどうすればよいですか?

分類Dev

node.jsはいくつの同時データベースクエリを実行できますか?

分類Dev

node.js(childProcess)でシェルスクリプトを実行する

分類Dev

configureの実行中にスクリプトを実行する

分類Dev

サブプロセスを使用し、いくつかのpythonスクリプトを実行するPythonconcurrent.futures

分類Dev

ノードjsからWindowsで.batスクリプトを実行する方法

分類Dev

Node-Expressは一度にいくつのリクエストを実行できますか?

分類Dev

node.jsスクリプトを10秒ごとに実行する

分類Dev

Herokuで非WebPythonTwistedスクリプトを実行する方法

分類Dev

ノードjsからPythonスクリプトを実行する方法

分類Dev

Nuxt.js SPAからPythonスクリプトを実行する方法は?

分類Dev

ElectronアプリでPythonスクリプトを実行する

分類Dev

これらの2つのherokuコマンドをbashスクリプトで実行するにはどうすればよいですか?

分類Dev

Herokuで6つのプロジェクトを実行していますが、そのうちの1つが勢いを増しています。今、ダイノを買いたいです。1つのDynoで実行できるアプリの数はいくつですか?

分類Dev

Node.js相対には、スクリプトを実行するためのパスが必要です

分類Dev

スクリプトにいくつかの行を入れてgdbで実行します

分類Dev

node.jsスクリプトをcronで実行しないのはなぜですか?

分類Dev

ECSタスクでPythonスクリプトを実行する

分類Dev

別のスクリプト内でスクリプトを実行する

分類Dev

別のスクリプトで関数/スクリプトを実行する

分類Dev

CMDでPowerShellスクリプトを複数行実行する

Related 関連記事

  1. 1

    node.js から Python スクリプトを実行する

  2. 2

    Herokuで2つのスクリプトを実行するにはどうすればよいですか?

  3. 3

    node.jsスクリプトを永久に実行する

  4. 4

    永久にいくつかのスクリプトを実行する

  5. 5

    Electronアプリ内で悪夢のjsスクリプトを実行する

  6. 6

    Pythonの異なるフォルダでいくつかのスクリプトを実行する方法

  7. 7

    PowerShellスクリプトでいくつかのコマンドレットを実行する方法は?

  8. 8

    PHPが機能しない状態でいくつかのPythonスクリプトを実行する

  9. 9

    FirebaseでNode.jsスクリプトを実行するにはどうすればよいですか?

  10. 10

    node.jsはいくつの同時データベースクエリを実行できますか?

  11. 11

    node.js(childProcess)でシェルスクリプトを実行する

  12. 12

    configureの実行中にスクリプトを実行する

  13. 13

    サブプロセスを使用し、いくつかのpythonスクリプトを実行するPythonconcurrent.futures

  14. 14

    ノードjsからWindowsで.batスクリプトを実行する方法

  15. 15

    Node-Expressは一度にいくつのリクエストを実行できますか?

  16. 16

    node.jsスクリプトを10秒ごとに実行する

  17. 17

    Herokuで非WebPythonTwistedスクリプトを実行する方法

  18. 18

    ノードjsからPythonスクリプトを実行する方法

  19. 19

    Nuxt.js SPAからPythonスクリプトを実行する方法は?

  20. 20

    ElectronアプリでPythonスクリプトを実行する

  21. 21

    これらの2つのherokuコマンドをbashスクリプトで実行するにはどうすればよいですか?

  22. 22

    Herokuで6つのプロジェクトを実行していますが、そのうちの1つが勢いを増しています。今、ダイノを買いたいです。1つのDynoで実行できるアプリの数はいくつですか?

  23. 23

    Node.js相対には、スクリプトを実行するためのパスが必要です

  24. 24

    スクリプトにいくつかの行を入れてgdbで実行します

  25. 25

    node.jsスクリプトをcronで実行しないのはなぜですか?

  26. 26

    ECSタスクでPythonスクリプトを実行する

  27. 27

    別のスクリプト内でスクリプトを実行する

  28. 28

    別のスクリプトで関数/スクリプトを実行する

  29. 29

    CMDでPowerShellスクリプトを複数行実行する

ホットタグ

アーカイブ