Very nice tips. Thank you, Brian.

You are welcome to send pull request to improve it. Also it might be
helpful adding these tips to pulsar documentation as well.

- Sijie

On Thu, Oct 31, 2019 at 10:25 PM Brian Candler <[email protected]> wrote:

> I'd just like to share a few hard-won tips for writing pulsar functions in
> python.
>
>
> (1) Pulsar is hard-wired to start "python" not "python3".  I hope this
> will change <https://github.com/apache/pulsar/issues/5518>, but until
> then there is a very risky workaround on Ubuntu:
>
> sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
>
> Only do this on a system where python(2) is *not* installed and you are
> sure you will never install it - not even as a dependency of some other
> package.  If it's a VM dedicated to pulsar you may be OK.
>
>
> (2) If a python function crashes at startup, you won't see its stderr
> output from the "localrun" command or the pulsar daemon.  But you *will*
> find it logged to
>
>
> apache-pulsar-2.4.1/logs/functions/<tenant>/<namespace>/<function>/<function>-<n>.log
>
>
> (3) If you have a python function which includes a class, e.g.
> /home/ubuntu/func1.py contains class FirstFunction, then you have to start
> it like this:
>
>         --py /home/ubuntu/func1.py --class func1.FirstFunction
>
> (that is, "func1" appears twice).  I didn't see any example like this in
> the documentation, and you don't get much help if you get it wrong! :-)  It
> works by adding the dirname (/home/ubuntu in this case) to sys.path.
>
> Hope this helps someone else.
>
> Cheers,
>
> Brian.
>

Reply via email to