2017-05-23 16 views
0

私は現在、AsanaとZendeskの間でデータを渡すアプリケーションを実行しています。Asana API Sync Error

私はすべてのプロジェクトをAsanaで作成し、すべてのプロジェクトイベントをWebhookエンドポイントに送信してリクエストを確認し、イベントタイプを識別し、イベントタイプに応じてZendeskに関連するデータを更新しようとします必要ありません)。私は最近、ウェブフックから次のリクエストを受けてきたが

"events": [ 
    { 
     "action": "sync_error", 
     "message": "There was an error with the event queue, which may have resulted in missed events. If you are keeping resources in sync, you may need to manually re-fetch them.", 
     "created_at": "2017-05-23T16:29:13.994Z" 
    } 
    ] 

私はイベントが私と一緒に到着したとき、私は反応するイベントの更新のためのAPIをポーリングしていないので、私はそうではありません同期キーを使用すると考えられているが、これは、イベントのポーリング時にのみ必要となることを示唆している。 Webhooksを使用するときにも使用する必要がありますか?

私には何が欠けていますか?

ご意見ありがとうございます。

答えて

0

ウェブフック用の同期キーをトラッキングする必要はありません.GoogleはAsanaで何か変更があったときに積極的に対応しようとしており、まだウェブフック全体で配信されていないイベント(本質的に、webhooksが正常に配信されたときにサーバーサイドの同期キーを更新することに似ています)。

ここで何が起きているのかは何らかの理由で、私たちのイベントキューが内部状態に問題があることを検出するということです。これは、イベントが記録されない、またはWebhookが長期間に渡って配信されなかったことを意味します。私たちのイベントやウェブフックは、ベストエフォートの意味での変更を追跡しようとしています。マシンが不適切な時期に死んでしまうような、このような問題を引き起こす可能性のあるものがいくつかあります。

残念なことに、良い状態に戻るための唯一の方法は、トラッキングしているプロジェクトのフルスキャンを行うことです。これは、you may need to manually re-fetch them.の意味です。基本的に、Asanaを外部リソース(つまり、「Zendeskはアサナのように見えるしてください」状態は、各リソース間の日付または異なるの外にあるものを検出し、マージ/パッチの解像度を選択し、

  • 特定のタスクおよび外部リソース与えられ、関数diff:ように見えます)
  • Webhookを受信すると、その1つのタスクのdiff/patchプロセスが「ライブ」形式で実行されます。
  • 定期的に(スクリプトの起動時に、Webhooks /イベントが見付からず、このようなエラーメッセージが表示された場合)、プロジェクト全体をスキャンしてすべてのリソースを更新し、すべてのタスクに対してdiff/patchを実行します。これはより高価ですが、はるかに稀です。