Re: how to write/setup a C trigger function in a background worker

From: jacques klein <jacques(dot)klei(at)googlemail(dot)com>
To: Bill Moran <wmoran(at)potentialtech(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: how to write/setup a C trigger function in a background worker
Date: 2015-08-19 21:33:59
Message-ID: 1440020039.10236.38.camel@jkn0.kehl.dalim.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Ok, think I got it,

I can use LISTEN and NOTIFY to do my IPC stuf, will just have to see if
it's possible to listen in a worker, with a permanent server connection,
I guess.
(as I remember, I already did a "listener" 10 years ago in a C client
app.)

Thanks,
Jaquest K.

On Wed, 2015-08-19 at 16:54 -0400, Bill Moran wrote:
> On Wed, 19 Aug 2015 19:45:47 +0200
> jacques klein <jacques(dot)klei(at)googlemail(dot)com> wrote:
>
> > Well, sorry David, I don't understand what you mean,
> >
> > let me explain what I want to do: in short, IPC between "background
> > workers".
> >
> > I am trying to transform my app. from a multi-threaded C SQL-client into
> > some "background workers", execution speed beeing the goal (avoid
> > network io).
> > Worker start/stopping is nicely solved by server start/stop, but I have
> > also to do some messaging/notifying between my worker processes, and
> > would like to use a Postgres based solution instead of the usual unix or
> > network ipc, or course by avoiding polling (tables acting as message
> > queues).
>
> I think what David is saying, and what I would suggest, is the
> following:
>
> * It's not possible to have a trigger execute in the background
> * Create a background job that runs perpetually and listens for
> notification that it has work to do (i.e. it sleeps until notified)
> * Notify the job from the trigger
>
> > On Wed, 2015-08-19 at 10:01 -0700, David Fetter wrote:
> > > On Wed, Aug 19, 2015 at 05:37:31PM +0200, jacques klein wrote:
> > > > I would like to execute a trigger function (written in C) in one of my
> > > > background workers.
> > > >
> > > > Didn't figure out how to do that not even if it's possible.
> > >
> > > You can write your trigger function in such a way as not to do the
> > > usual check for trigger context, but it might be better to write two
> > > functions, one with the trigger stuff in it, the other, which it
> > > calls, for whatever action you actually want to trigger, and call that
> > > second in your background worker.
> > >
> > > Cheers,
> > > David.
> >
> >
> >
> >
> > --
> > Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> > To make changes to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-hackers
>
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2015-08-19 22:14:03 Re: Our trial to TPC-DS but optimizer made unreasonable plan
Previous Message Jeff Janes 2015-08-19 21:31:33 Re: Mention column name in error messages