Thread: scheduling stored procedure
Hi,
I have a temporary table in which i store all emails of users who want to receive a newsletter.
to avoid spamming and to limit the size of this table, i would like to delete all requests (records) which are older than 72 hours.
i was thinking to execute each hour a stored procedure which will check the time and date (of now) if it is greater than "registration request time" stored in this temporary table.
if it is greater, so record will be deleted.
does postgresql have such timer (something like "cron" under unix/linux) ?
thanks a lot,
--
Alain
------------------------------------
Windows XP SP2
PostgreSQL 8.2.4 / MS SQL server 2005
Apache 2.2.4
PHP 5.2.4
C# 2005-2008
I have a temporary table in which i store all emails of users who want to receive a newsletter.
to avoid spamming and to limit the size of this table, i would like to delete all requests (records) which are older than 72 hours.
i was thinking to execute each hour a stored procedure which will check the time and date (of now) if it is greater than "registration request time" stored in this temporary table.
if it is greater, so record will be deleted.
does postgresql have such timer (something like "cron" under unix/linux) ?
thanks a lot,
--
Alain
------------------------------------
Windows XP SP2
PostgreSQL 8.2.4 / MS SQL server 2005
Apache 2.2.4
PHP 5.2.4
C# 2005-2008
On 23/03/2008 16:08, Alain Roger wrote: > i was thinking to execute each hour a stored procedure which will check > the time and date (of now) if it is greater than "registration request > time" stored in this temporary table. > if it is greater, so record will be deleted. > > does postgresql have such timer (something like "cron" under unix/linux) ? Not built in. There's pgAgent which comes with pgAdmin, which ought to do what you want, though I haven't used it myself. Alternatively, you can use cron to call psql with the -c option to execute the command you need run. Ray. --------------------------------------------------------------- Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland rod@iol.ie ---------------------------------------------------------------
Traditionally, postgres lets other tools do things they're good at..... like scheduling scripts to run every hour. :) I seem to recall there was a postgres-specific scheduler project somebody started, but I cannot seem to recall what it was called, much less how far along the project was. On Sun, 23 Mar 2008, Alain Roger wrote: > Hi, > > I have a temporary table in which i store all emails of users who want to > receive a newsletter. > to avoid spamming and to limit the size of this table, i would like to > delete all requests (records) which are older than 72 hours. > > i was thinking to execute each hour a stored procedure which will check the > time and date (of now) if it is greater than "registration request time" > stored in this temporary table. > if it is greater, so record will be deleted. > > does postgresql have such timer (something like "cron" under unix/linux) ? > > thanks a lot, > > -- > Alain > ------------------------------------ > Windows XP SP2 > PostgreSQL 8.2.4 / MS SQL server 2005 > Apache 2.2.4 > PHP 5.2.4 > C# 2005-2008 >
On 23/03/2008, Alain Roger <raf.news@gmail.com> wrote: > Hi, > > I have a temporary table in which i store all emails of users who want to > receive a newsletter. > to avoid spamming and to limit the size of this table, i would like to > delete all requests (records) which are older than 72 hours. > > i was thinking to execute each hour a stored procedure which will check the > time and date (of now) if it is greater than "registration request time" > stored in this temporary table. > if it is greater, so record will be deleted. > > does postgresql have such timer (something like "cron" under unix/linux) ? > no, but you can try pgAgent http://www.pgadmin.org/docs/1.4/pgagent.html > thanks a lot, > > -- > Alain > ------------------------------------ > Windows XP SP2 > PostgreSQL 8.2.4 / MS SQL server 2005 > Apache 2.2.4 > PHP 5.2.4 > C# 2005-2008