Thanks for your notes Chris, that flaw in the after_commit plugin has  
annoyed me on and off for a while - I really should fix it soon.

Greg - did Chris' points help you track down why jobs weren't being  
added on your setup?

-- 
Pat

On 18/07/2009, at 11:03 PM, cera wrote:

>
> The call_after_commit_callback() function (part of the after_commit
> plugin) discards exceptions.  I'm not sure if this is a limitation
> with the way that the callbacks are implemented, but you can see the
> stack trace if you wrap it in an exception:
>
> # File:  thinking-sphinx/vendor/after_commit/lib/after_commit/
> active_record.rb
>        def call_after_commit_callback(call)
>          if can_call_after_commit call
>            begin
>              callback call
>            rescue Exception => ex
>              STDERR.puts "#{ex.message}\n#{ex.backtrace.join("\n")}
>            end
>            clear_after_commit_call call
>          end
>        end
>
> I had a similar issue and the exception being thrown was b/c the
> 'last_error' and 'locked_at' columns in the delayed_jobs table had the
> "NOT NULL" constraint on them.  When the Job.create() function is
> called, the code doesn't explicitly set these fields, so it fails --
> and no Exception was thrown.  I don't know exactly what these columns
> are supposed to do, but I assumed that it was safe to be NULL since
> the DJ code doesn't set a value for them.
>
> Here is my DJ table in MySQL.  This is a slight modification to
> something I found posted on this forum, or on the website somewhere:
>
> CREATE TABLE delayed_jobs (
>  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
>  priority INT UNSIGNED NOT NULL DEFAULT 0,
>  attempts INT UNSIGNED NOT NULL DEFAULT 0,
>  handler VARCHAR(128) NOT NULL,
>  last_error VARCHAR(32) DEFAULT NULL,
>  run_at DATETIME DEFAULT NULL,
>  locked_at DATETIME DEFAULT NULL,
>  failed_at DATETIME DEFAULT NULL,
>  locked_by VARCHAR(32) DEFAULT NULL,
>  created_at DATETIME DEFAULT NULL,
>  updated_at DATETIME DEFAULT NULL,
>  PRIMARY KEY (id)
> ) ENGINE=InnoDB;
>
> [OT] Until I changed the MySQL script, my application worked on some
> machines but not others.  I still don't quite understand how
> ActiveRecord sets default values, and how they relate to the
> underlying databases defaults settings.
>
> In any case, I hope this helps -Chris
>
>
>
> On Jul 17, 4:52 pm, gbright <[email protected]> wrote:
>> Hello,
>>
>> I have been having a similar problem.  Using Rails 2.1.0, ts version
>> 1.1.22 plugin, etc.  Whenever a new record is being saved, nothing is
>> being inserted into the delayed_jobs table, hence delta indexing is
>> not working.   I don't have any other versions of the model lying
>> around.   Can anyone provide me with some hints as to where I might  
>> be
>> able to place debugging statements to determine whether or not the
>> callbacks are firing properly?
>>
>> Thanks.
>>
>> Greg
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to