Л
Size: a a a
Л
FK
DA
else: true
нужно возвращать, плюс лишние функции плодить).
ex(abillix@raznix.vnix)2> defmodule Z do defstruct c: 0 end
{:module, Z, …}
iex(abillix@raznix.vnix)3> %Z{c: 3}
%Z{c: 3}
iex(abillix@raznix.vnix)4> v |> (update_in [:c], &(&1-1))
** (UndefinedFunctionError) function Z.get_and_update/3 is undefined (Z does not implement the Access behaviour)
…
iex(abillix@raznix.vnix)4> v |> (cond_do value.c > 0, do: update_in value.c, &(&1-1))
%Z{c: 2}
iex(abillix@raznix.vnix)5> v |> (cond_do value.c > 0, do: update_in value.c, &(&1-1))
%Z{c: 1}
iex(abillix@raznix.vnix)6> v |> (cond_do value.c > 0, do: update_in value.c, &(&1-1))
%Z{c: 0}
iex(abillix@raznix.vnix)7> v |> (cond_do value.c > 0, do: update_in value.c, &(&1-1))
%Z{c: 0}
PG
PG
FK
DA
PG
PG
DA
DP
def run([url, report_id]) do
:ssl.start()
:ibrowse.start()
HPDF.Application.start([], [])
my_url = url
d = DateTime.utc_now
file_name = "#{d.year}_#{d.month}_#{d.day}"
{:ok, file} = File.open("printing/#{file_name}_report_graph.pdf", [:write])
case HPDF.print_pdf!(my_url, timeout: 60_000, print_options: %{landscape: true}, after_load_delay: 10000) do
{:ok, pdf_data} -> IO.binwrite(file, pdf_data)
end
end
def print_pdf!(url, opts \\ []) do
{:ok, pid} = HPDF.Controller.Supervisor.start_child([])
timeout = Keyword.get(opts, :timeout, :infinity)
result = GenServer.call(pid, {:print_pdf, url, opts}, timeout)
GenServer.stop(pid, :normal)
result
end
** (exit) exited in: GenServer.call(#PID<0.189.0>, {:print_pdf, "http://localhost/DC%207/overview/10?layout=report", [timeout: 60000, print_options: %{landscape: true}, after_load_delay: 10000]}, 60000)
** (EXIT) time out
(elixir) lib/gen_server.ex:1009: GenServer.call/3
lib/hpdf/controller.ex:22: HPDF.Controller.print_pdf!/2
lib/tasks/meminfo.ex:18: Mix.Tasks.Meminfo.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:79: Mix.CLI.run_task/2
D
def handle_call({:print_pdf, url, opts}, from, state) do?
DP
def handle_call({:print_pdf, url, opts}, from, state) do?
def handle_call({:print_pdf, url, opts}, _from, state) do
:timer.sleep(5000)
case HPDF.Browser.new_session() do
{:ok, session} ->
result = HPDF.Printer.print_page!(session.page_ws_uri, url, opts)
HPDF.Browser.close_session(session)
{:reply, result, state}
{:error, _reason} = err -> err
end
end
D
`
:timer.sleep(5000)
```))D
D
D
DP
15:15:43.864 [error] GenServer #PID<0.180.0> terminating
** (stop) bad return value: {:error, :not_connected}
Last message (from #PID<0.92.0>): {:print_pdf, "http://localhost/DC%207/overview/10?layout=report", [timeout: 60000, print_options: %{landscape: true}, after_load_delay: 10000]}
State: %{}
Client #PID<0.92.0> is alive
(stdlib) gen.erl:167: :gen.do_call/4
(elixir) lib/gen_server.ex:1006: GenServer.call/3
lib/hpdf/controller.ex:22: HPDF.Controller.print_pdf!/2
lib/tasks/meminfo.ex:18: Mix.Tasks.Meminfo.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:79: Mix.CLI.run_task/2
(elixir) src/elixir_compiler.erl:81: :elixir_compiler.dispatch/4
(elixir) src/elixir_compiler.erl:65: :elixir_compiler.compile/3
D
HPDF.Printer.print_page!
?DP
HPDF.Printer.print_page!
?def print_page!(ws_address, url, opts \\ []) do
ws_uri = URI.parse(ws_address)
args = Keyword.merge(
[
socket_args: [{ws_uri.host, ws_uri.port}, [path: ws_uri.path]],
],
opts
)
{:ok, printer} = __MODULE__.start_link(args)
print_page(printer, url, opts)
end
defp print_page(printer, url, opts) do
timeout = Keyword.get(opts, :timeout, @default_timeout)
GenServer.call(printer, {:print_pdf, url, opts}, timeout)
end