I have a very simple function that runs listDocuments on a collection with literally 2 items in it. There are no relationships or anything complicated. It times out roughly half the time, even when its running the identical query with the exact same inputs. The hang always occurs after the log 'feting documents' so I know its the initial listDocuments causing the hang. I am testing with a single user, I've tested it with document existing, document not existing, expired token etc and it all works. But it just consistently hangs roughly half the time. Self hosted.
(The function is supposed to check if there's an existing record in the collection for this users token. If not, generate a token and create a record. If exists, just use that token if its not expired. If its expired, generate a new token and update the record in the collection. This all works as intended when the function doesn't hang.)
import { Client, Databases, Query, ID } from 'node-appwrite';
import { StreamChat } from 'stream-chat';
const serverClient = StreamChat.getInstance('xxxxxx', 'xxxxxxxxxxxxxxxxxxxx');
export default async ({ req, res, log, error }) => {
const client = new Client();
client
.setEndpoint('https://api.xxx.com/v1') // Set your Appwrite endpoint here
.setProject('xxxxxxxx') // Set your project ID here
.setKey(process.env.APPWRITE_API_KEY); // Set your API key here
const tokensCollection = 'xxxxx';
const dbId = 'xxxxxx';
// Initialize the database client
const database = new Databases(client);
const data = req.headers;
const uid = data['x-appwrite-user-id'];
log(`processing UID ${uid}`);
if (req.method === 'POST') {
try {
log(`Fetching Documents`);
let token;
const docs = await database.listDocuments(dbId, tokensCollection, [
Query.equal('uid', uid),
]);
log(`docs: ${docs.total}`);
//Rest cut for character limit
};
Recommended threads
- How to make a count-down on document?
I have a document that i want to archive after 24h from the moment it was created. How do I do that ? Also assuming my application will accept thousands of po...
- question about docker swarm
Hi, In docker swarm for appwrite where do i place those : in the manager or the worker or both: traefik: appwrite: appwrite-console: appwrite-task-maintenance...
- file permission and relationship query
I want to restrict direct access to the file stored in the bucket because currently, when I paste the file URL into a browser, I can download the file. Addition...