问题标签 [cfthread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2278 浏览

coldfusion - 使用 cfthread join 获取在 cfloop 中运行的变量的值

感谢回复!!但我仍然无法做到。我得到的错误是“元素 objGet1 在类型为coldfusion.runtime.VariableScope 的Java 对象中未定义。”

下面是我的完整代码。我只想转储包含 cfhttp 信息的每个线程的值。

http://www.google.com/search?" & "q=Vin+Diesel" & "&num=10" & "&start=") />

当我在循环内加入线程后使用时。我得到了想要的结果谢谢!!

0 投票
3 回答
145 浏览

coldfusion - cfthread 内的cfcfhart 可能吗?如何获得输出?

我正在尝试改进我的一份报告的执行时间,该报告使用 cfcharts 打印图表。代码本身是一个实体循环,我为每个实体创建一个图表(这是一个比较报告)。

由于报告的复杂性,通过内联执行此操作需要将近一分钟或更长时间才能完成,因此我尝试在这种情况下使用 cfthread 但我不确定是否可能。

这是代码:

正如预期的那样,cfchart 不会在 cfthread 中“打印”,尽管它显然正在执行。如何获得 cfthread 的输出?一种可能的解决方案是从 cfchart 创建一个图像,然后在所有线程完成后使用该图像构建一个文档,但我想知道是否有任何方法可以从 cfthread 获取 cfchart 输出。

0 投票
3 回答
1200 浏览

coldfusion - 在 ColdFusion 10 的自定义标签中使用 CFThread 时出现未定义错误

注意:我已经完全重写了这个问题以考虑新信息。如果你已经读过这个,请重新阅读。

cfthread在 ColdFusion 10 的自定义标签中使用 from 时出现错误。在应用程序日志中,我收到以下条目:

它作为错误返回的函数的名称是_cffunccfthread_cf[Page Name Calling the CFThreadTag]一个不会随着请求而改变的数字。我每次都可以使用以下代码复制它:

应用程序.cfc:

ThePage.cfm:

ThreadTag.cfm:

只需将所有三个文件放在 ColdFusion 10 的目录中并加载 ThePage.cfm。我在应用程序日志中得到以下条目:

我还注意到,在自定义标签内的线程错误中,它包含应用程序名称。虽然页面中线程的日志条目确实如此。请注意,错误行仅,,针对日志的 Application 列,而成功线程具有"CFTHREADCUSTOMTAGTEST".

如果我更改ThreadTag.cfm为等待标记中的线程完成处理,那么一切正常,并且我得到了日志中的两个条目,如我所料:

为了验证任何地方都没有时髦的设置,这是我的本地开发环境的设置摘要

所以看起来如果我只是把线程扔出去,而不是等待它完成,那么线程似乎正在从父页面中寻找不再存在于内存中的东西。至少这是我完全没有根据的猜测:)。

我还向 Adob​​e 提交了一个错误。错误号 3218452

0 投票
1 回答
271 浏览

image-processing - 是否可以使用 Coldfusions cfthread 延迟加载图像?

我正在跑步coldfusion8/MySQL5.0.88,我有一个产品搜索,我需要在显示它们之前从各种外部来源中提取并调整图像大小。

虽然我主要可以在创建产品时执行此操作(相对于被搜索),但我无法确保所有图像都可以从我的服务器以调整大小的格式提供,因此我需要在产品搜索中进行某种回退。

现在,我正在检查图像在服务器上是否可用,如果没有,我会启动一个例程来抓取并调整图像大小,如下所示:

upload函数处理cfhttp请求和调整大小并返回true/false

我想知道是否可以cfthread在这种情况下使用,因此当用户进行搜索时,我会输出包含正确 URL 链接的标记,但图像拉取/调整大小/保存到目标将在 acfthread中完成,以便加快向用户显示结果。

问题
图像会在处理完成后显示,还是在尝试加载尚未创建的图像时(可能)cfthread会产生错误?404是否有任何其他方式可以向用户显示某些内容并让用户在上传和处理图像时继续?

感谢您的投入!

编辑:
好的。根据答案,我想出了以下内容。虽然还没有工作,但我认为它朝着正确的方向发展。

因此,这将检查我正在查询的媒体日志中的图像以及结果(避免对现有图像进行不必要的 s3 检查)。如果日志中没有图像,我将检查路径/文件名是否为空并触发我的intelligent图像加载器,它执行以下操作:

因此,我正在设置要创建的文件大小LOCAL.runner并查看此列表,将基础图像的大小调整为我预设的图像尺寸并将创建的图像存储在 s3 上。

问题cfcontent试图在创建之前返回图像。The file specified in contentTag does not exist运行上面的代码时出现错误。如果我检查 S3,图像就在那里,所以我假设这是一个时间问题。

感谢您提供有关如何强制“cfcontent”等到创建图像的任何指示!

0 投票
2 回答
1237 浏览

multithreading - CFTHREAD 中的范围问题

我有一个应用程序,每晚发送几封 10 万封电子邮件,因此为了加快处理速度,添加了一些 cfthreads。

这导致了一些奇怪的错误,我发现在一个线程中创建的变量正在被另一个线程修改。从我读过的文档中,在一个线程中创建的变量应该只对该线程可见?

做了一个简单的测试,如下所示:

“tmpEmailBody”的内容成功写入文件。

奇怪的是,如果我删除了 cfsavecontent 部分,并且有: <cfset tmpEmailBody = "test">,那么第二个线程会引发错误,并且 tmpEmailBody 没有定义,正如我所期望的那样。

有人知道这里发生了什么吗?

0 投票
1 回答
565 浏览

multithreading - 后台进程是否需要 CFThread 连接?

背景:

这是从外部站点检索数据(外部站点提供用于通过 Web 服务检索数据的 API)并使用新信息更新数据库的计划作业的一部分。它正在检索大约 3,500 个数据项。我当前的计划作业创建CFThread了一次运行 10 个线程的任务块,并在开始下一个 10 个线程块之前加入它们。

代码:

问题:

后台进程需要这种逻辑吗?也就是说,CFThread action="join"需要吗?线程没有显示任何内容,并且线程是独立的(不要依赖其他线程或产生它们的进程)。线程更新数据库中的价格并死掉。是否需要限制线程,即一次运行 10 个并加入它们?进程可以循环并一次创建所有 3,500 个线程吗?ColdFusion 会将额外的线程排队并在有时间时运行它们吗?

0 投票
1 回答
2961 浏览

coldfusion - Coldfusion 中的异步 HTTP 请求

如何使用 CFHTTP 标签执行异步 HTTP 请求?

我正在循环查询结果并通过 HTTP 帖子将一些数据发送到 URL。查询中有很多记录,因此 cfhttp 需要很多时间。

是否可以在 ColdFusion 中发送异步 HTTP 请求?有人建议我可以创建一个线程并在其中调用 cfhttp。除了cfthread还有其他方法吗?

0 投票
2 回答
505 浏览

coldfusion - 循环中的冷融合线程失去作用域

我目前正在努力掌握线程。我有一种感觉,这可能与我的范围有关;但是,我看不出我哪里出了问题。

我的 CFC 包含以下功能:

我有一个 CFM 页面,看起来有点像这样:

当我运行它时,coldfusion 会返回错误Element X is undefined in LOCAL。.

我无法弄清楚为什么在循环的第一次迭代后它会丢失local.x(我已经通过在循环开始和循环结束时进行转储来证明这一点,并且它无法到达本地.x = 2)。

我可能哪里出错了?

0 投票
1 回答
678 浏览

coldfusion - cfthread 的间歇性问题

我发现了这个错误报告。问题是,“这就是发生在我身上的事吗?”。

我有几种情况会做这种事情。

下一个将有一个实际名称。

每隔一段时间,我就会遇到这些异常。

当它第一次发生时,我再次运行了适用的报告并在不同的thead上得到了相同类型的错误,最终让它成功运行而无需更改任何代码或数据。

当它第一次发生时,我还认为线程中可能发生了一些不好的事情会导致它崩溃,所以我做了一些事情来强迫它发生。但是,当我检查异常日志时,该线程中的错误出现了。在这些情况下,异常日志会显示这篇文章中的内容。

我们正在运行版本 9,0,1,274733 并打开了监控。

我是否受到报告的错误的影响,或者这可能是其他原因?

回复评论

我无法随意重现该问题。在与我的管理员协商后,我们关闭了监控,但这些页面并没有经常运行。如果错误暂时没有出现,则不一定能证明什么。

有问题的线程包含长时间运行的查询。我刚刚想到的是,有一个非常常用的页面从未引起过问题。好页面和问题页面之间有两个区别。好的页面只运行了两个线程并将它们连接起来。问题页面运行两个以上。此外,好页面上的查询不会花费很长时间来执行。

对于那些建议超时的人,不是

这是一些代码。查询运行大约需要 4 秒。

异常日志显示:

和这个:

这是一组不同的例外。以前的说线程是空的。

0 投票
1 回答
582 浏览

multithreading - cfloop 中的 cfhttp 限制?使用 cfthread

我目前正在尝试开发一个 API,而我现在所处的阶段是用完整的数据集(ID、名字、姓氏、出生日期等)填充一个表。

我写这个的方法是使用一个从 1 到 500,000 的 cfloop(因为我不知道 ID 的范围是什么范围),并且在每个 cfloop 中我调用一个向服务器发出 cfhttp 请求并检索的函数内容。

然后我反序列化返回的 JSON,调用一个函数来查询我的表以查看当前项目 ID 是否已经存在,如果不存在,则调用一个函数来插入记录。

但是 cfloop 似乎在 300 请求标记附近停止,所以我想知道是否有更好的方法来做我正在做的事情?也许通过使用我从未有过使用经验的 CFTHREAD 标签。

这部分的代码如下: