标签: coldbox

使用Coldfusion发送大量电子邮件

这个问题可能与做大量的事情有关,但在这种情况下,我正在尝试发送电子邮件.

我已在新线程中设置发送过程,因此用户不会等待,并将请求超时重写为一小时.

问题是,一旦进程发送大约2000封电子邮件(通过以下代码循环约2000次),服务器就会耗尽内存,停止响应并需要重新启动.

阅读其他主题,CF应该能够很好地处理这一批电子邮件.

我考虑过的一件事是将所有对象调用更改为直接数据库查询并使用cfmail标记(我猜)删除所有对象的创建并在达到请求时构建(我猜是正在发生的事情),但我是不确定这是否会产生影响,并且如果可能的话,我真的想避免这种做法.我考虑过的其他东西是将它分成3个或4个单独的线程,但同样,不确定是否能解决问题.

有没有人遇到过这个问题,你发现什么能让处理继续进行而没有ram慢慢填满并杀死服务器?

thread name="sendBroadcastEmail" rc="#rc#" prc="#prc#" filters="#rc.filters#" email="#email#" emailSignature="#emailSignature#"{
    createObject( "java", "coldfusion.tagext.lang.SettingTag" ).setRequestTimeout(javaCast( "double", 3600 ));

        //get profiles that it will be sent to
        var sendToProfiles = profileService.getWithFilters(rc.filters);

        var mailService = getPlugin("MailService");
        var emailSent = false;
        var sentCount = 0;
        var failedCount = 0;

        //send the email (and log in profile events)
        if (listFind(attributes.rc.email.action,'send')){

            for ( i=1; i<=arrayLen(sendToProfiles);i++){
                var profile = sendToProfiles[i];
                try{

                    if (len(trim(profile.getPrimaryEmail()))){

                        var emailBody = profile.processDynamicPlaceholders(attributes.rc.email.body);
                        var emailBody = attributes.emailSignature.getHeader() & emailBody & …
Run Code Online (Sandbox Code Playgroud)

coldfusion coldbox coldfusion-9 coldfusion-10

6
推荐指数
1
解决办法
259
查看次数

Coldbox RESTful API不能做什么CF10 RESTful API?反之亦然?

刚开始看一些MVC JS框架/库,他们中的大多数都期望一个RESTful API端点,让我思考......使用CF10 + ColdBox RESTful支持无法完成的CF10怎么办?反之亦然?

谢谢.

rest coldfusion coldbox coldfusion-10

4
推荐指数
1
解决办法
981
查看次数

如何使构造函数方法可以使用WireBox注入的依赖项?

在这个例子中,我有一个叫做模型对象test.cfc具有相关性testService.cfc.

testWireBox testService通过属性声明注入.该对象如下所示:

component {

     property name="testService" inject="testService";

     /**
     *  Constructor
     */
     function init() {

         // do something in the test service
         testService.doSomething();

         return this;

     }

 }
Run Code Online (Sandbox Code Playgroud)

作为参考,testService有一个叫做doSomething()转储出一些文本的方法:

component
     singleton
{

     /**
     *  Constructor
     */
     function init() {

         return this;

     }


     /**
     *  Do Something
     */
     function doSomething() {

         writeDump( "something" );

     }

 }
Run Code Online (Sandbox Code Playgroud)

问题是,WireBox似乎testService在构造函数init()方法触发之后才会注入.所以,如果我在我的处理程序中运行它:

prc.test = wirebox.getInstance(
     name = "test"
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息: Error building: test …

coldfusion dependency-injection coldbox cfml wirebox

4
推荐指数
1
解决办法
152
查看次数

CF项目变得太大了,应该做什么?

一个简单的计费系统(在ColdBox MVC之上)正在膨胀成一个半企业的库存+配置+问题跟踪+利润跟踪应用程序.他们似乎在做自己的事情,但他们共享许多东西,包括一个共同的客户和员工池(登录),以及其他混合的数据和业务逻辑.

你如何保持这种系统模块化?从维护,可测试性重用性的角度来看?

  • 单一的整体应用程序?(即基础应用程序的新包)
  • ColdBox模块?不确定如何使其"可安装",它带来了什么好处.
  • Java Portlet?不知道,只是在盒子外思考
  • SOA架构?通过webservice API调用?

您想分享的任何想法和/或经验?

model-view-controller coldfusion erp coldbox

3
推荐指数
1
解决办法
368
查看次数

ColdBox - 如何使用setView()调用设置视图和传递参数?

我正在使用ColdBoxColdFusion 10.我想用setView()传递一个参数说id = 1000 .我找不到任何传递param的例子.

这是代码:

component {
// Dependency Injection
property name="requestService" inject="RequestService";

function index(event, rc, prc) {        
    var response = requestService.save(rc);

    if(response.Success EQ true) {
        event.setView(view="requests/success"); //Want to pass a param(int)
    } else {
        event.setView("requests/failure");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

coldfusion coldbox

3
推荐指数
1
解决办法
1319
查看次数

如何在 Coldbox 应用程序中使用 Cbauth 存储、检索和更新会话用户数据?

Cbauth是一个 Forgebox 模块,常用于 Coldbox 应用程序来处理用户身份验证。

要检索有关当前登录用户的信息,您可以调用auth().getUser()。此方法retrieveUserById()在应用程序定义的用户服务类中调用。在我的例子中,retrieveUserById()进入数据库,检索用户数据,然后返回一个组装的User实体对象。

在我的项目中,我想在每个页面上显示当前登录用户的名字和头像。我想避免在每个页面请求时都返回数据库,因为缓存至少一些用户数据(或者甚至整个User实体)会更有效。

Cbauth 中有没有办法在用户的会话范围内存储自定义数据,请求它,然后更新它(例如,如果用户在登录时更新他们的名字)

这是我迄今为止尝试过的:

根据文档,Cbauth 有一个调用的拦截器postAuthentication,它确实sessionStorage作为参数传递。我相信我可以利用它为当前用户存储额外的数据。但是,当我尝试user在拦截器中引用时,我收到一条Element USER is undefined in ARGUMENTS错误消息。

// After a user authenticates, store the user entity in the session (does not work)
function postAuthentication( user, sessionStorage, requestStorage ) {
    arguments.sessionStorage.user = arguments.user;
}
Run Code Online (Sandbox Code Playgroud)

此外,一旦存储缓存的会话数据,我就看不到任何方法来检索它。任何帮助或指向成功实施 Cbauth 示例的指针将不胜感激!

coldfusion coldbox cfml

3
推荐指数
1
解决办法
167
查看次数

LIMIT 和 OFFSET 上的参数不起作用

我试图通过参数化请求 URL 的限制来实现分页,不幸的是我遇到了错误。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''25'' at line 1

这是sql语法的代码。非常需要你的帮助。 queryExecute("SELECT * FROM TABLE_NAME LIMIT :limit",{limit:rc.limit});

coldfusion coldbox lucee

2
推荐指数
1
解决办法
416
查看次数

Coldbox 和 cfschedule

我应该如何使用 Coldbox 框架向应用程序添加 cfschedule 任务?

我是不是该:

a.) 编写一个执行任务的事件,并使用 Coldbox 将 cfschedule 指向该 URL?

b.) 在 Coldbox 之外写一个简单的 .cfm?

这个比那个好吗?

谢谢。

coldfusion coldbox

1
推荐指数
1
解决办法
345
查看次数

Coldbox路由动态路径变量的数量

我正在开发一个冷箱应用程序,我想创建一个接受'n'个路径变量作为一个变量的路由.这就是我的意思.

http://localhost/api/variable1/variable2/variable3/...
Run Code Online (Sandbox Code Playgroud)

我希望能够/api作为一个路径变量获取所有内容,我可以拆分/并获取值或者能够迭代所有变量之后/api.

有没有办法设置路线来做到这一点?

with(pattern="/api", handler="api")
    .addRoute(pattern="/:variables", action="index")
.endWith();
Run Code Online (Sandbox Code Playgroud)

任何想法都将非常感激.提前致谢.

coldfusion coldbox

0
推荐指数
1
解决办法
229
查看次数