首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让<cfmail>等待文件准备就绪

让<cfmail>等待文件准备就绪
EN

Stack Overflow用户
提问于 2016-10-20 22:09:35
回答 1查看 311关注 0票数 1

我有一个函数,它生成一个Excel文件(使用ColdFusion的电子表格函数),并将结果存储为ReportContent

我需要使用<cfmail>将报告邮寄给一组人

代码语言:javascript
复制
<cfmail from="#From#" to="#To#" subject="#Subject#" type="html" >
    <cfmailparam content="#ReportContent#" type="application/vnd.ms-excel" file="#FileName#" >
    #Body#
</cfmail>

我的问题是,在测试中,我发现<cfmail>命令通常会在Excel文件完全呈现之前执行,而不是附加一个不可用的.tmp文件。

我试图通过暂停执行5秒钟来处理这个问题,让Excel文件有时间呈现:

代码语言:javascript
复制
<cfscript>
    thread = CreateObject("java", "java.lang.Thread");
    thread.sleep(5000);
</cfscript>

这在大多数情况下都有效,但并不是100%有效。我现在已经将延迟提高到15秒--这适用于我当前的测试,但我不相信这是最好的策略。

在调用<cfmail>之前,有没有办法确认ReportContent中的Excel文件已经完全呈现

EN

回答 1

Stack Overflow用户

发布于 2016-10-23 22:40:25

使用像这样的命名锁,看看它是否有帮助:

代码语言:javascript
复制
<cflock name="some_preferably_unique_lock_name" type="exclusive" timeout="60">
<!--- code that creates and writes the Excel file to disk --->
</cflock>

<cflock name="same_preferably_unique_lock_name" type="exclusive" timeout="60">
<!--- code that mails the Excel file as attachment --->
</cflock>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40156847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档