2017-04-02 13 views
1

exqをスタンドアロンアプリとして実行する方法があります:https://github.com/akira/exq#standalone-exqしかし、それは私がそれを動作させる方法を本当に理解していないということです。 exqが私のphoenixアプリケーションへの依存として追加されている場合、アプリケーションを実行するとすでに実行されています。私はジョブをエンキューでき、実行中です。だから私の質問は、私のアプリケーションと一緒にそれを実行しないで別のアプリとして実行する方法です? (例えば、それをHerokuの別のワーカーで実行することも可能です)。フェニックスのスタンドアロンExq

+0

Iをエンキューの通常の方法を使用することができますあなたは単に ':exq'を' mix.exs'のアプリケーションリストから削除する必要があると思いますか? – Dogbert

+0

私はそれをしています(正確には、 'deps'のexqエントリに' runtime:false'を追加しようとしていました)私はもうジョブをエンキューできません。私は '**(EXIT)プロセスなし:プロセスが生きていないか、または指定された名前に現在関連付けられているプロセスがありません。アプリケーションが起動していない可能性があります.'エラー –

答えて

3

PhoenixアプリケーションでExqueを実行しようとしていますが、エンキューする機能はありますが、そのインスタンスでジョブを実行する必要はありませんか?

1)あなたが唯一エンキューアモードで起動するEXQを設定することができます。

は、2つのオプションがあります。これで、mix.exsに残すことができます。

:これを行うには、コンフィグを変更:

config :exq, 
    ... 
    mode: :enqueuer, 
    ... 

をあなたは、その後でエンキューすることができますに聞かれて何のキューが存在しないように

Exq.enqueue(Exq.Enqueuer, "default", HelloWorker, [])

2)あなたは、キューをオフにすることができます

config :exq, 
    ... 
    queues: [], 
    ... 

あなたはExq.enqueue(Exq, "default", HelloWorker, [])

+0

すごくいいです。そしてlibに感謝します! –

関連する問題