このような低速のバックエンドプロセスの場合、ほとんどの場合、サーバー側のSQLベースのキューシステムを採用することをお勧めします。
具体的には、サーバー上で、キューテーブルを読み取り、UPSからデータをフェッチし、結果をキューテーブルに書き戻すためのバイナリ/サービス/スクリプトを作成します。これにより、ステータスIDが維持されます。
次に、サイトが行う必要があるのは、リクエストをキューテーブルに挿入することだけです。その後、ajaxを使用して、キューテーブルをチェックし続け、データがまだ存在するかどうかを確認できます。
非常に基本的な例(例を挙げずに言うのは難しい):
CREATE TABLE [dbo].[ParcelQueue](
[JobID] [int] IDENTITY(1,1) NOT NULL,
[RequestTime] [datetime] NULL,
[ParcelTrackingNumber] [varchar](255) NULL,
[StatusID] [smallint] NULL,
[Result_DeliveryDate] [datetime] NULL,
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
(
[JobID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[test] ADD CONSTRAINT [DF_test_RequestTime] DEFAULT (getdate()) FOR [RequestTime]
GO
潜在的なステータスID:
- 保留中
- UPS応答OK
- UPSの応答に失敗しました