Hi,

I understand from your email that `StreamExecutionEnvironment.registerJobListener()` would not be enought for you because you want to be notified of changes on the cluster side, correct? That is when the job status changes on the master.

Best,
Aljoscha

On 23.09.20 14:31, 季文昊 wrote:
Hi there,

I'm working on a Flink platform in my corp, which provides a service to
provision and manage multiple dedicated Flink clusters. The problem is that
we want to sync a job status without delay after its submission through our
platform as long as it has been changed.

Since we want to update this in-time and make our services stateless,
pulling a job's status periodically is not a good solution. I do not find
any proper way to achieve this by letting a job manager push changes
directly to our platform except changing the source code, which registers
an additional `JobStatusListener` in the method
`org.apache.flink.runtime.jobmaster.JobMaster#startScheduling`.

I wonder if we can enhance `JobStatusListener` a little bit so that a Flink
user can register his custom JobStatusListener at the startup.

To be specific, we can have a `JobStatusListenerFactory` interface and its
corresponding `ServiceLoader<JobStatusListenerFactory>`, where
the JobStatusListenerFactory will have the following method:
  - JobStatusListener createJobStatusListener(Properties properties);

Custom listeners will be created during the JobMaster#startScheduling
method.

If someone would like to implement his own JobStatusListener, he will
package all the related classes into a standalone jar with a
`META-INF/services/org.apache.flink.runtime.executiongraph.JobStatusListener`
file and place it under the `lib/` directory.

In addition, I find that there is a Jira ticket similar to what I'm
asking: FLINK-17104 but I do not see any comment or update yet. Hope anyone
could help me move on this feature or give me some suggestions about it.

Thanks,
Wenhao


Reply via email to