Hello guys. When I call the fetch() function with parfeval, I get the following error:
parfeval(@fetch,1,database,query)
Error: 'Dot indexing is not supported for variables of this type.'
On the other hand, without parfeval, the function works perfectly. What could it be?

 採用された回答

Edric Ellis
Edric Ellis 2022 年 7 月 13 日

2 投票

You cannot pass database connection objects to workers directly like this. You should use createConnectionForPool . There are examples on that doc page that show you how to set up and use this. You'll end up with something like this:
c = createConnectionForPool(..);
% Wrap the call to "fetch" to unpick the .Value out of the pool connection
% object 'c'.
fut = parfeval(@(c, varargin) fetch(c.Value, varargin{:}), 1, c, query)

1 件のコメント

HILTON MARQUES SANTANA
HILTON MARQUES SANTANA 2022 年 7 月 14 日
編集済み: HILTON MARQUES SANTANA 2022 年 7 月 14 日
Thanks! It's working. Just another question. I am trying to speed up some queries on a online database on this way:
f = parfeval(@(c, varargin) fetch(c.Value, varargin{:}), 1, c, query1);
f(end+1) = parfeval(@(c, varargin) fetch(c.Value, varargin{:}), 1, c, query2);
f(end+1) = parfeval(@(c, varargin) fetch(c.Value, varargin{:}), 1, c, query3);
res1 = fetchOutputs(f(1));
res2 = fetchOutputs(f(3));
res3 = fetchOutputs(f(2));
But the time is not decreasing too much. There is a more efficient approach?
Thanks in advance

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Characters and Strings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by