小编Nic*_*ick的帖子

Codeigniter $ this-> db-> affected_rows()始终返回1

我正在使用codeigniter版本2.0.3.我正在尝试使用更新查询后获取受影响的行数

$this->db->affected_rows
Run Code Online (Sandbox Code Playgroud)

即使没有更新行,它也总是返回1.我试过了

mysql_affected_rows()
Run Code Online (Sandbox Code Playgroud)

如果查询失败,则返回-1;如果没有更新记录,则返回0.

编辑包括我的代码

我正在使用

$country_id = $this->input->post('country_id');
$time=$this->input->post('time');

$insert_array = array(
  'country' => $this->input->post('name')
);
$this->db->update('country_master', $insert_array, array("country_id" => $country_id,"last_updated"=>$time));
$afftectedRows=$this->db->affected_rows();
Run Code Online (Sandbox Code Playgroud)

codeigniter

10
推荐指数
1
解决办法
7万
查看次数

Django芹菜使用Ajax检索任务状态

我正在使用芹菜2.5.3和django芹菜 - 2.5.5.我正在使用mysql作为经纪人.

这是一个场景,当用户请求我在工作组中排队从另一个站点获取数据的作业时.这可能需要几分钟,具体取决于数据的大小.一旦作业开始,我们必须显示加载器图像.当工人完成下载数据(将采用html格式)时,我必须用检索到的数据替换加载器图像.

我们使用芹菜的原因是有时脚本需要超过30秒来完成和超时.

目前我打算使用ajax调用来检查作业的状态,这个函数将以固定的间隔使用.

我经历过一些问题,这就是我提出的问题

为了启动worker,我正在使用这段代码

def testCelery(request):
   result=testadd.apply_async()
   return HttpResponse(str(result.task_id))
Run Code Online (Sandbox Code Playgroud)

这会将task_id返回给客户端并使用ajax我将向服务器发送请求以检查作业是否已完成

def getStat(request,task_id):
      res = AsyncResult(task_id)
      s=res.ready()
      if s==True:
         return HttpResponse(str(res.get()))
      else:
         return HttpResponse(str(s))
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是正确的方法,或者它在实时场景中的表现如何.

请指教.

编辑:使用djcelery视图检查状态

好吧,我修改了我的代码,因为bruno建议现在看起来像

from djcelery import views as celery_views
def getStat(request,task_id):
    return celery_views.is_task_successful(request, task_id)
Run Code Online (Sandbox Code Playgroud)

它似乎正在发挥作用.并且仍然使用task_id的ajax调用来检索状态.

python celery python-2.7 django-celery

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

Django-celery:将请求对象传递给worker

我怎样才能将django请求对象传递给芹菜工人.当尝试传递请求对象时,它会抛出一个错误

Can't Pickle Input Objects
Run Code Online (Sandbox Code Playgroud)

似乎celery序列化传递给worker的任何参数.我尝试使用其他序列化方法,如JSON.

CELERY_TASK_SERIALIZER = "JSON"
Run Code Online (Sandbox Code Playgroud)

但它没有用.

是否可以配置芹菜,以便它不会序列化数据.或者我可以在传递给worker之前将请求对象转换为字符串,然后再转换回worker中的对象.

提前致谢...

python celery python-2.7 django-celery

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

Jquery live keyup无法正常工作

我有文字框

<input type="text"  name="extraQty0"  class="extraEvent" value="1"/>
Run Code Online (Sandbox Code Playgroud)

使用以下代码

$(".extraEvent").live('keyup',function(){
   alert('test');
});  
Run Code Online (Sandbox Code Playgroud)

这不起作用但如果我使用'click'而不是'keyup',警报将起作用.可能有什么不对?

jquery live

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

Extjs 4:立即禁用Extjs表单中的所有输入元素

我创建了一个extjs表单,它使用列布局分为两部分,其中包含大约10-15个输入元素.如何根据条件一次禁用所有这些输入元素.目前我已经创建了一个函数,它可以获取表单中的所有组件,并通过每个元素使用ext.each循环来禁用它们

这是我使用的功能

function prepare_form_view(form){
    var f=Ext.getCmp(form);
    var els=f.query('component');
    Ext.each(els,function(o){
        var xtype=o.getXType();
        if(xtype=='textfield'||xtype=='combobox'||xtype=='datefield'||xtype=='textareafield'||xtype=='button'){
            o.disabledCls='myDisabledClass';
            o.disable();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

是否有任何替代方法,以便我可以禁用所有元素而不循环遍历每个元素.我也希望将此功能与其他形式一起使用.我正在寻找像'setFieldDefult'这样的功能.

forms extjs elements extjs4

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