Hello friends, I do not think this problem of mine exists in production build ( I did not test it), but in developer mode iex -S mix
.
imagine you have this module
defmodule PluginWorker do
use Worker, concurrency: 1
def perform(event: event, type: :start) do
....
end
end
If I run my iex
, and call it inside the function_exported?
it returns true
.
but when I use it like this:
@impl true
# The task completed successfully
def handle_info({ref, _answer}, %{ref: ref} = state) do
Process.demonitor(ref, [:flush])
# HERE
function_exported?(PluginWorker, :worker?, 0)
|> IO.inspect(label: "=-==-=-=>") # false
Queue.new(%{
worker: PluginWorker,
error: %{type: :continuously, max_try: 5, delay: 1000}
})
{:noreply, %{state | ref: nil}, {:continue, :start_service_restoring}}
end
As you see it returns false
my question is, how can have this builded in iex
developer env
and test, and the other problem is, it is a problem in production build? like release
Test mode
In test mode I am forced to call some modules in test_helper.exs
file before testing, because without it inside my tests they are no be compiled before
for example:
ExUnit.start()
# Help to compile workers
MishkaInstallerTest.Support.MisWorkerOne.worker?()
WorkerTwo.worker?()
WorkerThree.worker?()
PluginWorker.worker?()
Thank you in advance