我目前正在尝试开发一个 API,而我现在所处的阶段是用完整的数据集(ID、名字、姓氏、出生日期等)填充一个表。
我写这个的方法是使用一个从 1 到 500,000 的 cfloop(因为我不知道 ID 的范围是什么范围),并且在每个 cfloop 中我调用一个向服务器发出 cfhttp 请求并检索的函数内容。
然后我反序列化返回的 JSON,调用一个函数来查询我的表以查看当前项目 ID 是否已经存在,如果不存在,则调用一个函数来插入记录。
但是 cfloop 似乎在 300 请求标记附近停止,所以我想知道是否有更好的方法来做我正在做的事情?也许通过使用我从未有过使用经验的 CFTHREAD 标签。
这部分的代码如下:
<cfset Variables.url = "someurl.html" />
<cfloop from=100000 to=500000 index="itemNo">
<cfset Variables.itemID = itemNo />
<cfset getItemData = Application.cfcs.Person.getPersonData(Variables.url,Variables.itemID) />
<cfif StructKeyExists(Variables,"getPersonData.FileContent")>
<cfset Variables.getPersonData = DeserializeJSON(getPersonData.FileContent)>
<cfscript>
// CHECK IF PERSON ALREADY IN DATABASE
Variables.getPerson = Application.cfcs.Person.getPersonRecord(Variables.itemID);
// INSERT ITEM IN TO TABLE
Variables.DOB = CreateDate(Year(Variables.getPersonData.Item.DateOfBirth.Year),Month(Variables.getPersonData.Item.DateOfBirth.Month),Day(Variables.getPersonData.Item.DateOfBirth.Day));
Variables.insPerson = Application.cfcs.Person.insPerson(Variables.getPersonData.personID,Variables.getPersonData.Item.FirstName,Variables.getPersonData.Item.LastName,Variables.getPersonData.Item.CommonName,Variables.DOB);
</cfscript>
</cfif>
</cfloop>