Problem solved, by refactoring executor’s API.
Now executor will receive a Scheduler.Context struct and execute work flow.
defmodule Orchid.Executor do
@moduledoc """
Executor behavoir.
"""
@type executor :: module()
@type executor_opts :: keyword()
@type response :: {:ok, [Orchid.Param.t()]} | {:error, term()}
@callback execute(Orchid.Scheduler.Context.t(), executor_opts()) ::
response()
end
I also change the application’s name from qy_core into orchid, because it’s project-agnostic.
It also released on hex.pm, and I translated some comments and documents into English. This is a lightweight library, and its library has only about ~1k lines of code(exclude comments and test).
Anyway, thank you for your viewing, especially the group member who helped me in the elixir chat group.






















