对于像这样的慢后端进程,使用基于服务器端 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 响应正常
- UPS 响应失败