At the moment I am using version 0.9.1 and I feel that it will be the solution 
when I switch to the next version of my application. I have the project in a 
"don't touch if not really needed" status.

Thanks,

        Jordi

-----Mensaje original-----
De: Navina Ramesh [mailto:[email protected]] 
Enviado el: jueves, 08 de octubre de 2015 19:31
Para: [email protected]
Asunto: Re: Relaunching init

Hi Jordi,

init() method is called only once during container start-up and not called 
again until the container is restarted. Semantically, it doesn't seem fit to 
make "init" callable more than once.

With Samza 0.10 (that is, the current master branch), you can pass 
configuration via a broadcast stream. You can configure one system stream 
partition to be consumed by all stream tasks. This way, whenever you write to 
the broadcast stream, you can reset or modify your config.
I don't think we have the documentation for this on the website, yet.

Here is how you configure a broadcast stream:
Let's say your broadcast stream is a kafka stream called "my-broadcast-stream" 
and has 1 partition. You can configure your job with:
task.global.inputs = kafka.my-broadcast-stream#0

Format is $system-name.$stream-name#$partition-number

You can also make multiple partitions broadcast by specifying a range.
Format is $system-name.$stream-name#[$partitionStart-$partitionEnd]

In the above case, if your broadcast stream has 3 partitions that you want to 
broadcast, your configuration looks like:
task.global.inputs = kafka.my-broadcast-stream#[0-2]

Data from broadcast stream will be available like any other input stream in the 
process() method. You may have to change your app logic to handle the config 
change. This is one way for satisfying your use-case.

Let me know if this solution will work for you.

Thanks!
Navina


On Thu, Oct 8, 2015 at 2:45 AM, Jordi Blasi Uribarri <[email protected]>
wrote:

> Hi,
>
> Is there a way of forcing the init of a job being rerun without 
> killing the job and restarting it?
>
> I have some configurations loaded in a job that are obtained in the 
> public void init(Config config, TaskContext context) function. When 
> the configuration changes and I need it to be reaplied the only way I 
> find is to completely kill the job and start it. This is a process 
> that takes quite a long. I don’t really know why but until I have the 
> messages flowing again I can stay for several minutes waiting.
>
> Is there a way to do this in any other way? I am thinking of some kind 
> of kill –HUP like in BIND servers (ok, I had a time as sysadmin ☺ ) or 
> maybe a way of programmatically calling a running job to reload.
>
> Thanks ,
>
>   Jordi
> ________________________________
> Jordi Blasi Uribarri
> Área I+D+i
>
> [email protected]
> Oficina Bilbao
>
> [http://www.nextel.es/wp-content/uploads/Firma_Nextel_2015.png]
>



--
Navina R.

Reply via email to